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。 如果
include=deleted
还指定了 ,则请求失败, (400) 错误请求。
-
files
:选。 版本 2020-12-06 及更高版本。 仅适用于使用分层命名空间启用的帐户。 当请求包含此参数时,列表仅包含文件。
-
directories
:选。 版本 2020-12-06 及更高版本。 仅适用于使用分层命名空间启用的帐户。 当请求包含此参数时,列表仅包含目录。
timeout
可选。
timeout
参数以秒表示。 有关详细信息,请参阅
设置 Blob 存储操作的超时
。
下表介绍必需的和可选的请求标头。
x-ms-client-request-id
可选。 提供客户端生成的不透明值,其中包含 1-kiB (KiB) 配置日志记录时记录在日志中的字符限制。 强烈建议使用此标头将客户端活动与服务器接收的请求相关联。 有关详细信息,请参阅
监视Azure Blob 存储
。
x-ms-upn
可选。 仅当为帐户启用了分层命名空间并在
include=permissions
请求中提供时有效。 如果
true
为 ,则“所有者>”、“<组>”和<“Acl>”<字段中返回的用户标识值将从 Azure Active Directory (Azure AD) 对象 ID 转换为用户主体名称。 如果
false
为 ,则值作为 Azure AD 对象 ID 返回。 默认值为
false
。 请注意,不会转换组和应用程序对象 ID,因为它们没有唯一的友好名称。
有关示例请求,请参阅
枚举 Blob 资源
。
响应包括 HTTP 状态代码、一组响应标头以及采用 XML 格式的响应正文。
此操作成功后返回状态代码 200(正常)。 有关状态代码的信息,请参阅
状态和错误代码
。
此操作的响应包括以下标头。 响应还可以包含其他标准 HTTP 标头。 所有标准标头都符合
HTTP/1.1 协议规范
。
x-ms-version
指示用于运行请求的 Blob 存储版本。 对于使用版本 2009-09-19 及更高版本发出的请求,将返回此标头。
如果使用 2009-09-19 版本的 Blob 存储将容器标记为公共访问,则还会为未指定版本的匿名请求返回此标头。
一个 UTC 日期/时间值,该值指示启动响应的时间。 服务生成此值。
x-ms-client-request-id
可以使用此标头对请求和相应的响应进行故障排除。 如果请求中存在此标头的值,则此标头的值等于该标头的值
x-ms-client-request-id
。 该值最多为 1024 个可见 ASCII 字符。
x-ms-client-request-id
如果请求中不存在标头,则响应中不会显示此标头。
XML 响应的格式如下所示。
请注意,仅当在请求 URI 中指定了
Prefix
、
Marker
、
MaxResults
和
Delimiter
元素时,这些元素才存在。
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 (冲突) 。
LeaseState
和
LeaseDuration
仅在版本 2012-02-12 及更高版本中显示。
CopyId
、
CopyStatus
、
CopySource
、
CopyProgress
、
CopyCompletionTime
和
CopyStatusDescription
仅出现在 2012-02-12 版及更高版本中,这时此操作包括
include={copy}
参数。 如果此 Blob 从未成为操作中
Copy Blob
的目标,则不会显示这些元素。 如果在完成
Copy Blob
操作后,通过使用
Set Blob Properties
、
Put Blob
或
Put 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 帐户,有效值为
Hot
、
Cool
和
Archive
。 如果 blob 处于解除冻结挂起状态,则
ArchiveStatus
返回元素,其中一个有效值 (
rehydrate-pending-to-hot
、
rehydrate-pending-to-cool
或
rehydrate-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 及更高版本,
Deleted
DeletedTime
当此操作包含
include={deleted}
参数时,会显示 、 和
RemainingRetentionDays
。 如果未删除此 Blob,则不会显示这些元素。 启用软删除功能时,这些元素将出现在通过
DELETE
操作删除的 Blob 或快照中。
Deleted
对于软删除的 Blob 和快照,元素设置为
true
。
Deleted-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 Blobs
则
RehydratePriority
返回 Blob 存储或常规用途 v2 帐户上的 元素。 有效值为
High
和
Standard
。
对于版本 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}
参数时,返回
ImmutabilityPolicyUntilDate
和
ImmutabilityPolicyMode
元素。
对于版本 2020-06-12 及更高版本,
List Blobs
如果此操作包含 参数,则
include={legalhold}
返回
LegalHold
元素。
对于版本 2020-06-12 及更高版本,对于启用了分层命名空间的帐户,
List Blobs
返回
Owner
、
Group
、
Permissions
和
Acl
元素。 请求必须包含
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
路径的属性元素。 这可以是
file
或
directory
。
对于版本 2021-02-12 及更高版本,
List Blobs
将按 RFC 2396) 所有
Blob
Name
或
BlobPrefix
Name
元素值 (百分比编码。 具体而言,它将针对包含在 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>
<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>
<TagSet>
<Key>TagName</Key>
<Value>TagValue</Value>
</TagSet>
</Tags>
<OrMetadata />
</Blob>
<BlobPrefix>
<Name>blob-prefix</Name>
</BlobPrefix>
</Blobs>
<NextMarker />
</EnumerationResults>
有关示例响应,请参阅 枚举 Blob 资源 。
在 Azure 存储中调用任何数据访问操作时,都需要授权。 可以如下所述授权 List Blobs
操作。
Azure AD
SAS) (共享访问签名
Azure 存储支持使用 Azure Active Directory (Azure AD) 来授权请求 Blob 数据。 借助 Azure AD,可以使用 Azure 基于角色的访问控制 (Azure RBAC) 向安全主体授予权限。 安全主体可以是用户、组、应用程序服务主体或 Azure 托管标识。 安全主体经 Azure AD 进行身份验证后会返回 OAuth 2.0 令牌。 然后可以使用令牌来授权对 Blob 服务发出请求。
若要详细了解如何使用 Azure AD 进行授权,请参阅 使用 Azure Active Directory 授予对 Blob 的访问权限。
下面列出了 Azure AD 用户、组或服务主体调用 List Blobs
操作所需的 RBAC 操作,以及包含此操作的最低特权内置 Azure RBAC 角色:
Azure RBAC 操作:Microsoft.Storage/storageAccounts/blobServices/containers/blobs/read
最低特权内置角色:存储 Blob 数据读取者
若要详细了解如何使用 Azure RBAC 分配角色,请参阅 分配 Azure 角色以访问 Blob 数据。
共享访问签名 (SAS) 提供对存储帐户中资源的安全委派访问。 使用 SAS,可以精细控制客户端访问数据的方式。 可以指定客户端可以访问的资源、它们对这些资源拥有的权限以及 SAS 的有效期。
该 List Blobs
操作支持三种类型的共享访问签名: 用户委派 SAS、 服务 SAS 和 帐户 SAS。
作为安全最佳做法,建议使用 Azure AD 凭据而不是存储帐户密钥,这可能会更容易泄露。 如果应用程序设计需要共享访问签名,请使用 Azure AD 凭据创建用户委派 SAS(如果可能)。
如果不允许对存储帐户进行共享密钥访问,则对 Blob 存储的请求不允许使用服务 SAS 令牌或帐户 SAS 令牌。 若要了解详细信息,请参阅 了解不允许共享密钥如何影响 SAS 令牌。
用户委托 SAS
用户委托 SAS 使用 Azure Active Directory (Azure AD) 凭据以及为 SAS 指定的权限进行保护。
List Blobs
使用委托给容器资源的 SAS 令牌调用操作需要 List (l) 权限作为用户委派 SAS 令牌的一部分。
若要详细了解用户委派 SAS,请参阅 创建用户委派 SAS。
服务 SAS
使用存储帐户密钥保护的服务 SAS。 服务 SAS 委托对单个 Azure 存储服务(例如 Blob 存储)中的资源的访问权限。
List Blobs
使用委托给容器资源的 SAS 令牌调用操作需要列出 (l) 权限作为服务 SAS 令牌的一部分。
若要详细了解服务 SAS,请参阅 创建服务 SAS。
帐户 SAS
帐户 SAS 使用存储帐户密钥进行保护。 帐户 SAS 可委派对一个或多个存储服务中的资源的访问权限。 通过服务或用户委托 SAS 提供的所有操作也可以通过帐户 SAS 提供。
下表指示在委派访问权限时要指定的已签名资源类型和已签名权限:
已签名服务
已签名资源类型
已签名权限
该 List Blobs
操作支持 共享密钥授权。 在大多数情况下,不建议使用帐户密钥进行授权,因为它不太安全。
Microsoft 建议尽可能禁止对存储帐户进行共享密钥授权。 有关详细信息,请参阅阻止通过共享密钥进行授权。
响应中的 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
元素中,将在与每个名称-值对的名称对应的元素中列出该对的值。
请注意,使用此参数请求的元数据必须按照 Blob 存储的 2009-09-19 版本施加的命名限制进行存储。 从此版本开始,所有元数据名称都必须遵循 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
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=immutabilitypolicy
和 ImmutabilityPolicyMode
元素才存在。
<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,一直返回到分隔符字符的外观。 元素的 BlobPrefix
值为 substring+delimiter,其中 substring 是以一个或多个 Blob 名称开头的公共子字符串, 而 delimiter 是 参数的值 delimiter
。
可以使用 的值 BlobPrefix
进行后续调用,以列出以此前缀开头的 Blob。 为此,请在请求 URI 上为 prefix
参数指定 的值BlobPrefix
。
请注意,每个返回的 BlobPrefix
元素都会根据最大结果进行计数,就像每个 Blob
元素一样。
Blob 在响应正文中按字母顺序列出,大写字母将先列出。
复制状态说明中的复制错误
CopyStatusDescription
包含有关 Copy Blob
错误的详细信息。
复制尝试失败时, 如果 Blob 存储仍在重试操作, CopyStatus
则 设置为 pending
。 该 CopyStatusDescription
文本描述了在上次复制尝试期间可能发生的失败。
CopyStatus
设置为 failed
时,CopyStatusDescription
文本将描述导致复制操作失败的错误。
下表描述了每个 CopyStatusDescription
值的字段。
描述错误的关键字。 它由 Azure 在 ErrorCode> 元素中<提供。 <如果未显示 ErrorCode> 元素,则服务将返回一个关键字 (keyword) ,其中包含与 HTTP 规范中的三位数 HTTP 状态代码关联的标准错误文本。 有关详细信息,请参阅常见 REST API 错误代码。
失败的详细说明,以引号表示。
下表说明了常见错误情形的 CopyStatus
和 CopyStatusDescription
值。
即使没有版本更改,此处显示的说明文本也可以更改,而不会发出警告。 不要依赖于与此文本完全匹配。
从复制操作的源 Blob 中读取时出现无法恢复的错误。
404 ResourceNotFound“读取源时复制失败”。当服务报告此基础错误时,它会在 ErrorCode> 元素中<返回ResourceNotFound
。 如果响应中未 <显示 ErrorCode> 元素,则将显示 HTTP 状态的标准字符串表示形式,例如 NotFound
。
限制所有复制操作的超时时间已过。 (当前超时期限为两周。)
500 OperationCancelled“复制超过允许的最长时间”。
从源中读取时,复制操作失败过于频繁,而不符合最低的尝试成功比率要求。 (此超时可防止在失败) 前两周内重试非常差的源。
500 OperationCancelled“在读取源时复制失败”。
状态和错误代码
Blob 存储错误代码