你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

列出 Blob

List Blobs 操作返回指定容器下的 Blob 列表。

请求

可以按如下所示构造 List Blobs 请求。 建议使用 HTTPS。 将 myaccount 替换为存储帐户的名称。

方法 请求 URI HTTP 版本
GET https://myaccount.blob.core.windows.net/mycontainer?restype=container&comp=list HTTP/1.1

模拟存储服务 URI

对模拟存储服务发出请求时,将模拟器主机名和Azure Blob 存储端口指定为 127.0.0.1:10000,后跟模拟的存储帐户名称。

方法 请求 URI HTTP 版本
GET http://127.0.0.1:10000/devstoreaccount1/mycontainer?restype=container&comp=list HTTP/1.1

有关详细信息,请参阅 使用 Azurite 模拟器进行本地 Azure 存储开发

URI 参数

可以在 URI 上指定以下附加参数。

参数 说明
prefix 可选。 筛选结果以仅返回名称以指定前缀开头的 Blob。 在具有分层命名空间的帐户中,如果文件名出现在前缀路径的中间,则会发生错误。 例如,可以尝试查找使用前缀路径 folder1/folder2/readme/readmefile.txt命名readmefile.txt的 Blob。 如果任何子文件夹包含名为 readme的文件,则会出现错误。
delimiter 可选。 当请求包含此参数时,操作将在响应正文中返回元素 BlobPrefix 。 此元素充当名称以同一子字符串开头的所有 blob 的占位符,一直以分隔符字符的外观。 分隔符可以是单个字符或字符串。
marker 可选。 一个字符串值,该值指定要使用下一个列表操作返回的列表部分。 如果返回的列表不完整,此操作将在响应正文中返回标记值。 然后,可以在后续调用中使用标记值来请求下一组列表项。

标记值对客户端不透明。
maxresults 可选。 指定要返回的 Blob(包括所有 BlobPrefix 元素)的最大数量。 如果请求未指定 maxresults,或指定大于 5,000 的值,则服务器将返回最多 5,000 项。 如果有其他结果要返回,则服务将在响应元素中 NextMarker 返回一个延续标记。 在某些情况下,服务可能返回的结果可能少于 指定 maxresults的结果,并且还会返回延续标记。

maxresults 设置为小于等于零的值会导致出现错误响应代码 400(错误请求)。
include={snapshots,metadata,uncommittedblobs,copy,deleted,tags,versions,
deletedwithversions,immutabilitypolicy,legalhold,permissions}
可选。 指定要包含在响应中的一个或多个数据集:

- snapshots:指定快照应包含在枚举中。 在响应中,将按最旧到最新的顺序列出快照。
- metadata:指定在响应中返回 Blob 元数据。
- uncommittedblobs:指定已上传块但尚未通过使用 放置块列表提交的 Blob 包含在响应中。
- copy:版本 2012-02-12 及更高版本。 指定应在响应中包含与任何当前或以前 Copy Blob 操作相关的元数据。
-deleted:版本 2017-07-29 及更高版本。 指定响应中应包含软删除的 Blob。
-tags:版本 2019-12-12 及更高版本。 指定响应中应包含用户定义的 Blob 索引标记。
-versions:版本 2019-12-12 及更高版本。 指定 Blob 的版本应包含在枚举中。
-deletedwithversions:版本 2020-10-02 及更高版本。 指定 (活动或删除) 的任何版本的已删除 blob 应包含在响应中。 已永久删除的项显示在响应中,直到垃圾回收处理它们。 使用 标记 \<HasVersionsOnly\>和值 true
-immutabilitypolicy:版本 2020-06-12 及更高版本。 指定枚举应包括截至日期的不可变性策略和 Blob 的不可变性策略模式。
-legalhold:版本 2020-06-12 及更高版本。 指定枚举应包括 Blob 的法定保留。
-permissions:版本 2020-06-12 及更高版本。 仅支持启用了分层命名空间的帐户。 如果请求包含此参数,则列出的 Blob 或目录的所有者、组、权限和访问控制列表将包含在枚举中。

要在 URI 中指定其中多个选项,必须用 URL 编码的逗号 ("%82") 分隔各选项。
showonly={deleted,files,directories} 可选。 指定要在响应中返回的以下数据集之一:

-deleted:选。 版本 2020-08-04 及更高版本。 仅适用于使用分层命名空间启用的帐户。 当请求包含此参数时,列表仅包含软删除的 Blob。 请注意,列出软删除的 blob 不支持 POSIX ACL 授权回退。 如果 include=deleted 还指定了 ,则请求失败, (400) 错误请求。
-files:选。 版本 2020-12-06 及更高版本。 仅适用于使用分层命名空间启用的帐户。 当请求包含此参数时,列表仅包含文件。
-directories:选。 版本 2020-12-06 及更高版本。 仅适用于使用分层命名空间启用的帐户。 当请求包含此参数时,列表仅包含目录。
timeout 可选。 timeout 参数以秒表示。 有关详细信息,请参阅 设置 Blob 存储操作的超时

请求标头

下表介绍必需的和可选的请求标头。

请求标头 说明
Authorization 必需。 指定授权方案、帐户名称和签名。 有关详细信息,请参阅授权对 Azure 存储的请求
Datex-ms-date 必需。 指定请求的协调世界时 (UTC)。 有关详细信息,请参阅授权对 Azure 存储的请求
x-ms-version 对于所有授权请求是必需的,对于匿名请求,则为可选。 指定用于此请求的操作的版本。 有关详细信息,请参阅 Azure 存储服务的版本控制
x-ms-client-request-id 可选。 提供客户端生成的不透明值,其中包含 1-kiB (KiB) 配置日志记录时记录在日志中的字符限制。 强烈建议使用此标头将客户端活动与服务器接收的请求相关联。 有关详细信息,请参阅监视Azure Blob 存储
x-ms-upn 可选。 仅当为帐户启用了分层命名空间并在 include=permissions 请求中提供时有效。 如果true为 ,则“所有者>”、“<组”>和<“Acl>”字段中返回<的用户标识值将从Microsoft Entra对象 ID 转换为用户主体名称。 如果false为 ,则返回值作为Microsoft Entra对象 ID。 默认值为 false。 请注意,不会转换组和应用程序对象 ID,因为它们没有唯一的友好名称。

请求正文

无。

示例请求

有关示例请求,请参阅 枚举 Blob 资源

响应

响应包括 HTTP 状态代码、一组响应标头以及采用 XML 格式的响应正文。

状态代码

此操作成功后返回状态代码 200(正常)。 有关状态代码的信息,请参阅 状态和错误代码

响应头

此操作的响应包括以下标头。 响应还可以包含其他标准 HTTP 标头。 所有标准标头都符合 HTTP/1.1 协议规范

响应标头 说明
Content-Type 指定返回的结果所采用的格式。 目前,此值为 application/xml
x-ms-request-id 此标头唯一标识发出的请求,可用于对请求进行故障排除。 有关详细信息,请参阅 API 操作疑难解答
x-ms-version 指示用于运行请求的 Blob 存储版本。 对于使用版本 2009-09-19 及更高版本发出的请求,将返回此标头。

如果使用 2009-09-19 版本的 Blob 存储将容器标记为公共访问,则还会为未指定版本的匿名请求返回此标头。
Date 一个 UTC 日期/时间值,该值指示启动响应的时间。 服务生成此值。
x-ms-client-request-id 可以使用此标头对请求和相应的响应进行故障排除。 如果请求中存在此标头的值,则此标头的值等于该标头的值 x-ms-client-request-id 。 该值最多为 1024 个可见 ASCII 字符。 x-ms-client-request-id如果请求中不存在标头,则响应中不会显示此标头。

响应正文

XML 响应的格式如下所示。

请注意,仅当在请求 URI 中指定了 PrefixMarkerMaxResultsDelimiter 元素时,这些元素才存在。 NextMarker仅当列表结果不完整时, 元素才具有值。

仅当使用 include 参数在请求 URI 中指定了快照、Blob 元数据和未提交的 Blob 时,它们才会包含在响应中。

在版本 2009-09-19 及更高版本中,Blob 的属性封装在 元素中 Properties

从 2009-09-19 版开始,List Blobs 在响应正文中返回以下重命名的元素:

  • Last-Modified(以前为 LastModified

  • Content-Length(以前为 Size

  • Content-Type(以前为 ContentType

  • Content-Encoding(以前为 ContentEncoding

  • Content-Language(以前为 ContentLanguage

对于 Content-MD5 使用版本 2009-09-19 及更高版本创建的 Blob,将显示 元素。 在版本 2012-02-12 及更高版本中,Blob 存储使用 Put Blob 上传 Blob 时计算Content-MD5值。 使用 “放置块列表”创建 Blob 时,Blob 存储不会计算此值。 可以在创建 Blob 时显式设置 Content-MD5 值,也可以通过调用 “放置块列表”“设置 Blob 属性” 操作来设置值。

对于 2009-09-19 及更高版本,但在版本 2015-02-21 之前,不能在包含追加 blob 的容器上调用 List Blobs 。 如果列表的结果包含追加 blob,则服务返回状态代码 409 (冲突) 。

LeaseStateLeaseDuration 仅在版本 2012-02-12 及更高版本中显示。

CopyIdCopyStatusCopySourceCopyProgressCopyCompletionTimeCopyStatusDescription 仅出现在 2012-02-12 版及更高版本中,这时此操作包括 include={copy} 参数。 如果此 Blob 从未成为操作中 Copy Blob 的目标,则不会显示这些元素。 如果在完成 Copy Blob 操作后,通过使用 Set Blob PropertiesPut BlobPut Block List修改了此 Blob,则不会显示元素。 在版本 2012-02-12 之前,这些元素也不会与 复制 Blob 创建的 Blob 一起显示。

在版本 2013-08-15 及更高版本中, EnumerationResults 元素包含一个 ServiceEndpoint 指定 Blob 终结点的属性。 此元素还包含一个 ContainerName 指定容器名称的字段。 在以前的版本中,这两个属性在 ContainerName 字段中组合在一起。 此外,在版本 2013-08-15 及更高版本中, Url 下的 Blob 元素已被删除。

对于版本 2015-02-21 及更高版本, List Blobs 返回所有类型的 blob, (块、页和追加 blob) 。

对于版本 2015-12-11 及更高版本, List Blobs 返回 ServerEncrypted 元素。 如果 Blob 和应用程序元数据已完全加密,则此元素设置为 ;否则,false此元素设置为 true

对于版本 2016-05-31 及更高版本, List Blobs 返回 IncrementalCopy 增量复制 Blob 和快照的 元素,值设置为 true

对于版本 2017-04-17 及更高版本,如果已显式设置访问层, List Blobs 则返回 AccessTier 元素。 有关允许的高级页 Blob 层的列表,请参阅 VM 的高性能高级存储和托管磁盘。 对于 Blob 存储或常规用途 v2 帐户,有效值为 HotCoolArchive。 如果 blob 处于解除冻结挂起状态,则 ArchiveStatus 返回元素,其中一个有效值 (rehydrate-pending-to-hotrehydrate-pending-to-coolrehydrate-pending-to-cold) 。 有关块 Blob 分层的详细信息 ,请参阅热、冷和存档存储层

对于版本 2017-04-17 及更高版本, List Blobs 返回 AccessTierInferred Blob 存储或常规用途 v2 帐户上的 元素。 如果块 Blob 未设置访问层,则会从存储帐户属性推断层信息,并将此值设置为 true。 仅当从帐户属性推断层时,此标头才存在。

对于版本 2017-04-17 及更高版本, List Blobs 返回 AccessTierChangeTime Blob 存储或常规用途 v2 帐户上的 元素。 仅当已设置块 blob 上的层时,才会返回此值。 有关详细信息,请参阅 标头中日期时间值的表示形式

对于版本 2017-07-29 及更高版本,DeletedDeletedTime当此操作包含 include={deleted} 参数时,会显示 、 和 RemainingRetentionDays 。 如果未删除此 Blob,则不会显示这些元素。 启用软删除功能时,这些元素将出现在通过 DELETE 操作删除的 Blob 或快照中。 Deleted对于软删除的 Blob 和快照,元素设置为 trueDeleted-Time 对应于删除 Blob 的时间。 RemainingRetentionDays 指示永久删除软删除的 Blob 的天数。

对于版本 2017-11-09 及更高版本, Creation-Time 返回创建此 Blob 的时间。

对于版本 2019-02-02 及更高版本, List Blobs 如果 Blob 使用客户提供的密钥加密,则返回 CustomerProvidedKeySha256 元素。 该值将设置为用于加密 Blob 的密钥的 SHA-256 哈希。 此外,如果操作包括 include={metadata} 参数,并且使用客户提供的密钥加密的 Blob 上存在应用程序元数据,则 Metadata 元素将具有属性 Encrypted="true" 。 此属性指示 Blob 具有无法作为操作的一部分解密的 List Blobs 元数据。 若要访问这些 Blob 的元数据,请使用客户提供的密钥调用 “获取 Blob 属性” 或“ 获取 Blob 元数据 ”。

对于版本 2019-02-02 及更高版本, List Blobs 如果 Blob 使用加密范围加密,则返回 EncryptionScope 元素。 该值将设置为用于加密 Blob 的加密范围的名称。 如果操作包括 include={metadata} 参数,则 Blob 上的应用程序元数据会以透明方式解密,并在 元素中 Metadata 可用。

对于版本 2019-12-12 及更高版本,如果对象处于 rehydrate pending 状态,List BlobsRehydratePriority返回 Blob 存储或常规用途 v2 帐户上的 元素。 有效值为 HighStandard

对于版本 2019-12-12 及更高版本, List Blobs 在帐户上启用版本控制时,返回 VersionId Blob 和生成的 Blob 版本的 元素。

对于版本 2019-12-12 及更高版本, List Blobs 返回 IsCurrentVersion Blob 的当前版本的 元素。 值设置为 true。 此元素使你能够将当前版本与自动生成的只读版本区分开来。

对于版本 2019-12-12 及更高版本, List Blobs 返回 TagCount 具有任何标记的 Blob 的 元素。 Tags仅当此操作包含 参数时,include={tags}才会显示 元素。 如果 Blob 上没有标记,则不会显示这些元素。

对于版本 2019-12-12 及更高版本, List Blobs 返回 Sealed 追加 blob 的 元素。 Sealed仅当已密封追加 blob 时,才会显示 元素。 如果未密封追加 Blob,则不会显示这些元素。

对于版本 2020-02-10 及更高版本, List Blobs 返回 LastAccessTime 元素。 元素根据存储帐户的上次访问时间跟踪策略显示上次访问 Blob 数据的时间。 如果存储帐户没有此策略,或者策略被禁用,则不会返回 元素。 有关设置帐户的上次访问时间跟踪策略的信息,请参阅 Blob 服务 API。 元素 LastAccessTime 不会跟踪上次访问 Blob 元数据的时间。

对于版本 2020-06-12 及更高版本,List Blobs当此操作包含 include={immutabilitypolicy} 参数时,返回 ImmutabilityPolicyUntilDateImmutabilityPolicyMode 元素。

对于版本 2020-06-12 及更高版本,List Blobs当此操作包含 include={legalhold} 参数时,返回 LegalHold 元素。

对于版本 2020-06-12 及更高版本,对于启用了分层命名空间的帐户, List Blobs 返回 OwnerGroupPermissionsAcl 元素。 请求必须包含 include={permissions} 参数。 请注意, Acl 元素是在文件或目录上设置的访问列表和默认访问控制列表的组合列表。

对于版本 2020-06-12 及更高版本,对于启用了分层命名空间的帐户, List Blobs 使用分隔符返回 Properties 元素中的 BlobPrefix 元素。 这对应于 目录上的属性。

对于版本 2020-08-04 及更高版本,对于启用了分层命名空间的帐户, List Blobs 返回 DeletionId 已删除 Blob 的 元素。 DeletionId 是无符号的 64 位标识符。 元素唯一标识软删除的路径,以将其与具有相同路径的其他已删除 blob 区分开来。

对于版本 2020-10-02 及更高版本,对于启用了分层命名空间的帐户, List Blobs 返回 ResourceType 路径的属性元素。 这可以是 filedirectory

对于版本 2021-02-12 及更高版本, List Blobs 将按 RFC 2396) 所有 BlobNameBlobPrefixName 元素值对 (进行百分比编码。 具体而言,它将针对包含无效字符的值执行此操作,这些字符在 XML (U+FFFE 或 U+FFFF) 。 如果已编码,元素 Name 将包含一个 Encoded=true 属性。 请注意,这仅针对 Name 包含 XML 中无效字符的元素值,而不适用于响应中的其余 Name 元素。

对于版本 2021-06-08 及更高版本,对于启用了分层命名空间的帐户, List Blobs 返回 Placeholder properties 元素。 当使用分隔符列出已删除的 blob 时,它将返回占位符目录的 元素中的 BlobPrefix 此元素。 存在这些占位符目录以方便导航到软删除的 Blob。

对于版本 2021-06-08 及更高版本,对于启用了分层命名空间的帐户, List Blobs 返回 EncryptionContext 元素。 如果设置了加密上下文属性值,它将返回设置的值。

对于版本 2020-02-10 及更高版本,对于启用了分层命名空间的帐户, List Blobs 返回 Expiry-Time 已删除 Blob 的 元素。 Expiry-Time 是文件过期的时间,如果到期时间设置为相同,则为文件返回 。

<?xml version="1.0" encoding="utf-8"?>  
<EnumerationResults ServiceEndpoint="http://myaccount.blob.core.windows.net/"  ContainerName="mycontainer">  
  <Prefix>string-value</Prefix>  
  <Marker>string-value</Marker>  
  <MaxResults>int-value</MaxResults>  
  <Delimiter>string-value</Delimiter>  
  <Blobs>  
    <Blob>  
      <Name>blob-name</name>  
      <Snapshot>date-time-value</Snapshot>  
      <VersionId>date-time-vlue</VersionId>
      <IsCurrentVersion>true</IsCurrentVersion>
      <Deleted>true</Deleted>
      <Properties> 
        <Creation-Time>date-time-value</Creation-Time>
        <Last-Modified>date-time-value</Last-Modified>  
        <Etag>etag</Etag>
        <Owner>owner user id</Owner>
        <Group>owning group id</Group>
        <Permissions>permission string</Permissions>
        <Acl>access control list</Acl>
        <ResourceType>file | directory</ResourceType>
        <Placeholder>true</Placeholder>
        <Content-Length>size-in-bytes</Content-Length>  
        <Content-Type>blob-content-type</Content-Type>  
        <Content-Encoding />  
        <Content-Language />  
        <Content-MD5 />  
        <Cache-Control />  
        <x-ms-blob-sequence-number>sequence-number</x-ms-blob-sequence-number>  
        <BlobType>BlockBlob|PageBlob|AppendBlob</BlobType>  
        <AccessTier>tier</AccessTier>  
        <LeaseStatus>locked|unlocked</LeaseStatus>  
        <LeaseState>available | leased | expired | breaking | broken</LeaseState>  
        <LeaseDuration>infinite | fixed</LeaseDuration>  
        <CopyId>id</CopyId>  
        <CopyStatus>pending | success | aborted | failed </CopyStatus>  
        <CopySource>source url</CopySource>  
        <CopyProgress>bytes copied/bytes total</CopyProgress>  
        <CopyCompletionTime>datetime</CopyCompletionTime>  
        <CopyStatusDescription>error string</CopyStatusDescription>  
        <ServerEncrypted>true</ServerEncrypted> 
        <CustomerProvidedKeySha256>encryption-key-sha256</CustomerProvidedKeySha256>
        <EncryptionContext>encryption-context<EncryptionContext>
        <EncryptionScope>encryption-scope-name</EncryptionScope>
        <IncrementalCopy>true</IncrementalCopy>
        <AccessTierInferred>true</AccessTierInferred>
        <AccessTierChangeTime>datetime</AccessTierChangeTime>
        <DeletedTime>datetime</DeletedTime>
        <RemainingRetentionDays>no-of-days</RemainingRetentionDays>
        <TagCount>number of tags between 1 to 10</TagCount>
        <RehydratePriority>rehydrate priority</RehydratePriority>
        <Expiry-Time>date-time-value</Expiry-Time>
      </Properties>  
      <Metadata>     
        <Name>value</Name>  
      </Metadata>  
      <Tags>
          <TagSet>
              <Tag>
                  <Key>TagName</Key>
                  <Value>TagValue</Value>
              </Tag>
          </TagSet>
      </Tags>
      <OrMetadata />
    </Blob>  
    <BlobPrefix>  
      <Name>blob-prefix</Name>  
    </BlobPrefix>  
  </Blobs>  
  <NextMarker />  
</EnumerationResults>  

示例响应

有关示例响应,请参阅 枚举 Blob 资源

授权

在 Azure 存储中调用任何数据访问操作时,都需要授权。 可以授权操作, List Blobs 如下所述。

Azure 存储支持使用 Microsoft Entra ID 来授权对 Blob 数据的请求。 使用 Microsoft Entra ID,可以使用 Azure 基于角色的访问控制 (Azure RBAC) 向安全主体授予权限。 安全主体可以是用户、组、应用程序服务主体或 Azure 托管标识。 安全主体由 Microsoft Entra ID 进行身份验证,以返回 OAuth 2.0 令牌。 然后可以使用令牌来授权对 Blob 服务发出请求。

若要详细了解如何使用 Microsoft Entra ID 授权,请参阅使用 Microsoft Entra ID 授权访问 blob

权限

下面列出了Microsoft Entra用户、组或服务主体调用List Blobs操作所需的 RBAC 操作,以及包含此操作的最小特权内置 Azure RBAC 角色:

若要详细了解如何使用 Azure RBAC 分配角色,请参阅 分配 Azure 角色以访问 Blob 数据

注解

响应中的 Blob 属性

如果已请求将未提交的 Blob 包含在枚举中,请注意,在提交 Blob 之前不会设置某些属性。 某些属性可能不会在响应中返回。

x-ms-blob-sequence-number 元素将仅为页 Blob 返回。

OrMetadata仅为块 Blob 返回 元素。

对于页 Blob,Content-Length 元素中返回的值与 Blob 的 x-ms-blob-content-length 标头的值相对应。

Content-MD5 当已使用版本 2009-09-19 或更高版本在 Blob 上设置元素时,才会出现在响应正文中。 可以在创建 Blob 时设置 Content-MD5 属性,也可以通过调用 “设置 Blob 属性”来设置属性。 在版本 2012-02-12 及更高版本中, Put Blob 设置块 Blob 的 MD5 值,即使 Put Blob 请求不包含 MD5 标头也是如此。

响应中的元数据

只有在 URI 上指定了 Metadata 参数时,才会显示 include=metadata 元素。 在 Metadata 元素中,将在与每个名称-值对的名称对应的元素中列出该对的值。

请注意,使用此参数请求的元数据必须按照 2009-09-19 版 Blob 存储所施加的命名限制进行存储。 从此版本开始,所有元数据名称都必须遵循 C# 标识符的命名约定。

如果元数据名称-值对违反了这些命名限制,响应正文会指示元素中 x-ms-invalid-name 存在问题的名称。 以下 XML 片段演示了这一点:

  
…  
<Metadata>  
  <MyMetadata1>first value</MyMetadata1>  
  <MyMetadata2>second value</MyMetadata2>  
  <x-ms-invalid-name>invalid-metadata-name</x-ms-invalid-name>  
</Metadata>  
…  
  

响应中的标记

Tags仅当include=tags在 URI 上指定了 参数,并且 Blob 上存在标记时,元素才存在。 在 元素中 TagSet ,最多返回 10 Tag 个元素,每个元素都包含 key 用户定义的 Blob 索引标记的 和 value 。 在响应中无法保证标记的顺序。

Tags如果 blob 上没有标记,则不会返回 和 TagCount 元素。

存储服务在 Blob 与其标记之间保持高度一致性,但辅助索引最终保持一致。 标记在对 操作可见之前,可以在响应 List Blobs 中可见 Find Blobs by Tags

响应中的快照

仅当在 URI 上指定了 参数时, include=snapshots 才会在响应中列出快照。 响应中列出的快照不包括 LeaseStatus 元素,因为快照不能具有活动租约。

使用服务版本 2021-06-08 及更高版本,可以使用分隔符调用 List Blobs 并在枚举中包含快照。 对于 2021-06-08 之前的服务版本,包含两者的请求将返回 InvalidQueryParameter 错误 (HTTP 状态代码 400 – 错误请求) 。

响应中未提交的 Blob

仅当在 URI 中指定了 include=uncommittedblobs 参数时,才会在响应中列出未提交的 Blob。 响应中列出的未提交的 Blob 不包括以下任何元素:

  • Last-Modified

  • Etag

  • Content-Type

  • Content-Encoding

  • Content-Language

  • Content-MD5

  • Cache-Control

  • Metadata

响应中已删除的 Blob

仅当在 URI 上指定了 参数时, include=deleted 才会在响应中列出已删除的 Blob。 响应中列出的已删除 Blob 不包括 Lease 元素,因为已删除的 Blob 不能具有活动租约。

如果在 include=deleted,snapshot URI 上指定了已删除的快照,则包含在列表响应中。

响应中的对象复制元数据

OrMetadata在 Blob 上评估了对象复制策略,并且List Blobs调用是使用版本 2019-12-12 或更高版本进行的时,元素就存在。 在 OrMetadata 元素中,将在与每个名称-值对的名称对应的元素中列出该对的值。 名称的格式为 or-{policy-id}_{rule-id},其中 {policy-id} 是表示存储帐户上的对象复制策略标识符的 GUID。 {rule-id} 是表示存储容器上的规则标识符的 GUID。 有效值为 complete or failed进行求值的基于 SQL 语言的筛选器表达式。

  
…  
<OrMetadata>  
  <or-e524bba7-4323-4b93-91f8-d09d5d0b7057_d86c51de-ef02-4264-bdcf-dcd389a6c7ac>complete</or-e524bba7-4323-4b93-91f8-d09d5d0b7057_d86c51de-ef02-4264-bdcf-dcd389a6c7ac>  
  <or-2b302b5d-fcd5-44d6-a5ed-455bf27e17ea_4a398ff5-2a89-4090-879b-10248f23428e>failed</or-2b302b5d-fcd5-44d6-a5ed-455bf27e17ea_4a398ff5-2a89-4090-879b-10248f23428e>  
</OrMetadata>  
…  
  

响应中的不可变性策略

ImmutabilityPolicyUntilDate仅当在 URI 上指定了 参数时, include=immutabilitypolicyImmutabilityPolicyMode 元素才存在。

<Properties> 
   <ImmutabilityPolicyUntilDate>date-time-value</ImmutabilityPolicyUntilDate>   
   <ImmutabilityPolicyMode>unlocked | locked </ImmutabilityPolicyMode>  
</Properties> 

只有在 URI 上指定了 LegalHold 参数时,才会显示 include=legalhold 元素。

<Properties> 
  <LegalHold>true | false </LegalHold>  
</Properties> 

使用标记值返回结果集

如果为 maxresults 参数指定值,并且要返回的 Blob 数超过此值,或超过 的默认值 maxresults,则响应正文将包含 元素 NextMarker 。 此元素指示对后续请求返回的下一个 Blob。 在某些情况下,即使返回的结果数小于 的值maxresults,服务也可能返回 NextMarker 元素。

要返回下一组项,请在后续请求的 URI 上将 NextMarker 值指定为标记参数。 请注意,NextMarker 值应视为不透明。

使用分隔符遍历 Blob 命名空间

通过 delimiter 参数,调用方可以使用用户配置的分隔符遍历 Blob 命名空间。 这样,你就可以遍历 Blob 的虚拟层次结构,就好像它是文件系统一样。 分隔符可以是单个字符或字符串。

如果请求包含该参数,此操作将返回 BlobPrefix 元素。 将 BlobPrefix 返回 元素,以取代名称以同一子字符串开头的所有 blob,一直以分隔符字符的外观。 元素的值 BlobPrefixsubstring+delimiter,其中 substring 是开始一个或多个 Blob 名称的常见子字符串, 分隔符 是 参数的值 delimiter

可以使用 的值 BlobPrefix 进行后续调用,以列出以此前缀开头的 Blob。 为此, BlobPrefix 请在请求 URI 上为 prefix 参数指定 的值。

请注意,每个返回的 BlobPrefix 元素都会根据最大结果进行计数,就像每个 Blob 元素一样。

Blob 在响应正文中按字母顺序列出,大写字母将先列出。

复制状态说明中的复制错误

CopyStatusDescription 包含有关 Copy Blob 错误的详细信息。

  • 复制尝试失败时,如果 Blob 存储仍在重试操作, CopyStatus 则设置为 pending 。 该 CopyStatusDescription 文本描述了上次复制尝试期间可能发生的失败。

  • CopyStatus 设置为 failed 时,CopyStatusDescription 文本将描述导致复制操作失败的错误。

下表描述了每个 CopyStatusDescription 值的字段。

组件 说明
HTTP 状态代码 指定失败的标准三位数整数。
错误代码 描述错误的关键字。 它由 Azure 在 ErrorCode> 元素中<提供。 <如果未显示 ErrorCode> 元素,则服务将返回一个关键字 (keyword) ,其中包含与 HTTP 规范中的三位数 HTTP 状态代码关联的标准错误文本。 有关详细信息,请参阅常见 REST API 错误代码
信息 失败的详细说明,以引号表示。

下表说明了常见错误情形的 CopyStatusCopyStatusDescription 值。

重要

即使没有版本更改,此处显示的说明文本也可以更改,而不会发出警告。 不要依赖于匹配此确切文本。

方案 “复制状态”值 “复制状态说明”值
已成功完成复制操作。 success empty
在复制操作完成之前,用户已中止复制操作。 已中止 empty
在复制操作期间从源 Blob 读取时出错。 将重试该操作。 挂起 502 BadGateway“读取源时遇到可重试的错误。 将重试。 失败时间: <时间>”
写入复制操作的目标 Blob 时出错。 将重试该操作。 挂起 500 InternalServerError“遇到可重试的错误。 将重试。 失败时间: <时间>”
从复制操作的源 Blob 中读取时出现无法恢复的错误。 “失败” 404 ResourceNotFound“读取源时复制失败”。当服务报告此基础错误时,它会在 ErrorCode> 元素中<返回ResourceNotFound。 如果响应中未 <显示 ErrorCode> 元素,则会显示 HTTP 状态的标准字符串表示形式,例如 NotFound
限制所有复制操作的超时时间已过。 (当前超时期限为两周。) “失败” 500 OperationCancelled“复制超过允许的最长时间”。
从源中读取时,复制操作失败过于频繁,而不符合最低的尝试成功比率要求。 (此超时可防止在失败) 前两周内重试非常差的源。 “失败” 500 OperationCancelled“在读取源时复制失败”。

计费

定价请求可以源自使用 Blob 存储 API 的客户端,可以直接通过 Blob 存储 REST API 或 Azure 存储客户端库。 这些请求按事务产生费用。 事务类型会影响帐户的计费方式。 例如,读取事务应计为与写入事务不同的计费类别。 下表显示了基于存储帐户类型的请求的计费类别 List Blobs

操作 存储帐户类型 计费类别
列出 Blob 高级块 blob
标准常规用途 v2
标准常规用途 v1
列出和创建容器操作

若要了解指定计费类别的定价,请参阅Azure Blob 存储定价

另请参阅

状态和错误代码
Blob 存储错误代码