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

获取 Blob 属性

Get Blob Properties 操作返回 Blob 的所有用户定义的元数据、标准 HTTP 属性和系统属性。 它不会返回 Blob 的内容。

请求

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

HEAD方法请求 URI HTTP 版本
https://myaccount.blob.core.windows.net/mycontainer/myblob

https://myaccount.blob.core.windows.net/mycontainer/myblob?snapshot=<DateTime>

https://myaccount.blob.core.windows.net/mycontainer/myblob?versionid=<DateTime>
HTTP/1.1

模拟存储服务 URI

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

HEAD方法请求 URI HTTP 版本
http://127.0.0.1:10000/devstoreaccount1/mycontainer/myblob HTTP/1.1

有关详细信息,请参阅使用 Azure 存储模拟器进行开发和测试

URI 参数

可以在请求 URI 上指定以下附加参数:

参数 说明
snapshot 可选。 快照 参数是一个不透明的DateTime值,如果存在,则指定要检索的 blob 快照。 有关使用 Blob 快照的详细信息,请参阅创建 blob 的快照
versionid 可选。 版本 2019-12-12 及更高版本。 参数 versionid 是一个不透明的 DateTime 值,当它存在时,它指定要检索的 Blob 的版本。
timeout 可选。 timeout 参数以秒表示。 有关详细信息,请参阅 设置 Blob 存储操作的超时

请求标头

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

请求标头 说明
Authorization 必需。 指定授权方案、帐户名称和签名。 有关详细信息,请参阅授权对 Azure 存储的请求
Datex-ms-date 必需。 指定请求的协调世界时 (UTC)。 有关详细信息,请参阅授权对 Azure 存储的请求
x-ms-version 对于所有已授权的请求是必需的。 匿名请求可选。 指定用于此请求的操作的版本。 有关详细信息,请参阅 Azure 存储服务的版本控制
x-ms-lease-id: <ID> 可选。 如果指定了此标头, Get Blob Properties 则仅当满足以下两个条件时才执行该操作:

- Blob 的租约当前处于活动状态。
- 请求中指定的租约 ID 与 Blob 的租约 ID 匹配。

如果其中任一条件不满足,则请求失败,并且 Get Blob Properties 操作失败,状态代码为 412 (先决条件失败) 。
x-ms-upn 可选。 版本 2020-06-12 及更高版本。 对于启用了分层命名空间的帐户有效。 如果 中x-ms-owner返回的用户标识值为 true,则它们将从Microsoft Entra对象 ID 转换为用户主体名称。 如果值为 false,则它们作为Microsoft Entra对象 ID 返回。 默认值是 false秒。 请注意,不会转换组和应用程序对象 ID,因为它们没有唯一的友好名称。
x-ms-client-request-id 可选。 提供客户端生成的不透明值, (KiB) 字符限制,在启用存储分析日志记录时记录在分析日志中。 强烈建议在将客户端活动与服务器接收的请求相关联时使用此标头。 有关详细信息,请参阅关于 Azure 存储分析日志记录

此操作还支持使用条件标头,以便在符合指定条件时才返回 Blob 属性和元数据。 有关详细信息,请参阅 为 Blob 存储操作指定条件标头

请求标头 (客户提供的加密密钥)

从版本 2019-02-02 开始,可以在请求中指定以下标头,以读取使用客户提供的密钥加密的 Blob。 使用客户提供的密钥 (和相应的一组标头) 进行加密是可选的。 如果 Blob 以前已使用客户提供的密钥进行加密,则必须在请求中包含这些标头,以便可以成功完成读取操作。

请求标头 说明
x-ms-encryption-key 必需。 Base64 编码的 AES-256 加密密钥。
x-ms-encryption-key-sha256 可选。 加密密钥的 Base64 编码 SHA256 哈希。
x-ms-encryption-algorithm: AES256 必需。 指定要用于加密的算法。 此标头的值必须为 AES256

请求正文

无。

响应

响应包括 HTTP 状态代码和一组响应标头。

状态代码

此操作成功后返回状态代码 200(正常)。

有关状态代码的详细信息,请参阅 状态和错误代码

响应头

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

响应标头 说明
Last-Modified 上次修改 Blob 的日期/时间。 日期格式遵循 RFC 1123。 有关详细信息,请参阅 在标头中表示日期/时间值

修改 Blob 的任何操作将会更改 Blob 的上次修改时间,包括更新 Blob 的元数据或属性。
x-ms-creation-time 版本 2017-11-09 及更高版本。 创建 Blob 的日期/时间。 日期格式遵循 RFC 1123。 有关详细信息,请参阅 在标头中表示日期/时间值
x-ms-meta-name:value 一组名称/值对,对应于与此 Blob 关联的用户定义的元数据。
x-ms-tag-count 版本 2019-12-12 及更高版本。 如果 Blob 具有任何标记,则返回 Blob 上存储的标记数。 如果 Blob 上没有标记,则不会返回此标头。
x-ms-blob-type:<BlockBlob\|PageBlob\|AppendBlob> Blob 类型。
x-ms-copy-completion-time:<datetime> 版本 2012-02-12 及更高版本。 上次尝试的Copy Blob 操作(将此 Blob 作为目标 Blob)的结束时间。 该值可以指定已完成、已中止或失败的复制尝试时间。 如果副本处于挂起状态,如果此 Blob 从未在操作中Copy Blob成为目标,或者此 Blob 在使用 、 或 Put Block List的完成Copy Blob操作Set Blob Properties后进行了修改,Put Blob则不会显示此标头。
x-ms-copy-status-description: <error string> 版本 2012-02-12 及更高版本。 仅在 为 failedpendingx-ms-copy-status显示。 描述致命或非致命复制操作失败的原因。 如果此 Blob 从未成为操作中Copy Blob的目标,或者此 Blob 在使用 、 Put BlobPut Block List的已Copy Blob结束操作Set Blob Properties后修改,则不会显示此标头。
x-ms-copy-id: <id> 版本 2012-02-12 及更高版本。 上次尝试 Copy Blob 的操作的字符串标识符,其中此 Blob 是目标 Blob。 如果此 Blob 从未成为操作中Copy Blob的目标,或者此 Blob 在使用 、 Put BlobPut Block List的已Copy Blob结束操作Set Blob Properties后修改,则不会显示此标头。
x-ms-copy-progress: <bytes copied/bytes total> 版本 2012-02-12 及更高版本。 包含上次尝试 Copy Blob 的操作中源中复制的字节数和总字节数,其中此 Blob 是目标 Blob。 可以显示从 0 到 Content-Length 复制的字节。 如果此 Blob 从未成为操作中Copy Blob的目标,或者此 Blob 在使用 、 Put BlobPut Block List的已Copy Blob结束操作Set Blob Properties后修改,则不会显示此标头。
x-ms-copy-source: url 版本 2012-02-12 及更高版本。 最长为 2 KiB 的 URL,指定在上次尝试 Copy Blob 的操作中使用的源 Blob,其中此 Blob 是目标 Blob。 如果此 Blob 从未成为操作中Copy Blob的目标,或者此 Blob 在使用 、 Put BlobPut Block List的已Copy Blob结束操作Set Blob Properties后修改,则不会显示此标头。
x-ms-copy-status: <pending \| success \| aborted \| failed> 版本 2012-02-12 及更高版本。 由 x-ms-copy-id 标识的复制操作的状态,这些值包括:

- success:复制已成功完成。
- pending:复制正在进行中。 如果间歇性的非严重错误影响了复制进度,但未导致出现错误,请参阅 x-ms-copy-status-description
- aborted:复制已由 Abort Copy Blob结束。
- failed:复制失败。 有关错误详细信息,请参阅 x-ms-copy-status-description

如果此 Blob 从未成为操作中Copy Blob的目标,或者此 Blob 在使用 、 Put BlobPut Block List的已完成Copy Blob操作Set Blob Properties后修改,则不会显示此标头。
x-ms-incremental-copy: true 版本 2016-05-31 及更高版本。 如果 Blob 是增量复制 Blob,则包括 。
x-ms-copy-destination-snapshot:<datetime> 版本 2016-05-31 及更高版本。 如果 blob 是增量复制 blob,则包含快照增量复制(如果x-ms-copy-status成功)。 此 blob 上一次成功增量复制快照的快照时间。
x-ms-lease-duration: <infinite \| fixed> 在租用 Blob 时,指定租约是无限期还是固定时间。 包含在使用版本 2012-02-12 及更高版本的请求中。
x-ms-lease-state: <available \| leased \| expired \| breaking \| broken> Blob 的租用状态。 包含在使用版本 2012-02-12 及更高版本的请求中。
x-ms-lease-status:<locked\| unlocked> Blob 的租约状态。
Content-Length Blob 大小,以字节为单位。 对于页 Blob,此标头返回随 Blob 一起存储的标头的值 x-ms-blob-content-length
Content-Type 为 Blob 指定的内容类型。 如果未指定内容类型,则默认内容类型为 application/octet-stream
Etag ETag 包含一个值,你可以使用该值有条件地执行操作。 有关详细信息,请参阅 为 Blob 存储操作指定条件标头。 如果请求版本为 2011-08-18 或更高版本,则 ETag 值用引号引起来。
Content-MD5 如果为 Blob 设置了 Content-MD5 标头,则会返回此响应标头,以便客户端可以检查消息内容完整性。

在版本 2012-02-12 及更高版本中, Put Blob 设置块 Blob 的 MD5 值,即使 Put Blob 请求不包含 MD5 标头。
Content-Encoding 如果以前为 Blob 设置了 Content-Encoding 请求标头,则会在此标头中返回该值。
Content-Language 如果以前为 Blob 设置了 Content-Language 请求标头,则会在此标头中返回该值。
Content-Disposition 如果以前为 Blob 设置了 Content-Disposition 请求标头,则会针对 2013-08-15 和更高版本的请求在此标头中返回该值。

Content-Disposition 响应标头字段传达有关如何处理响应负载的详细信息,也可用于附加更多元数据。 例如,如果标头设置为 attachment,则表示用户代理不应显示响应,而是显示“另存为”对话框。
Cache-Control 如果以前为 Blob 设置了 Cache-Control 请求标头,则会在此标头中返回该值。
x-ms-blob-sequence-number 页 Blob 的当前序列号。

不会为块 Blob 或追加 Blob 返回此标头。

不会为块 Blob 返回此标头。
x-ms-request-id 此标头唯一标识发出的请求,你可以使用它对请求进行故障排除。 有关详细信息,请参阅 API 操作疑难解答
x-ms-version 指示用于执行请求的 Blob 存储版本。 对于针对版本 2009-09-19 及更高版本发出的请求,返回此标头。

如果使用 Blob 存储版本 2009-09-19 将容器标记为公共访问,则对于没有指定版本的匿名请求,也会返回此标头。
Date 由服务生成的 UTC 日期/时间值,指示启动响应的时间。
Accept-Ranges: bytes 指示服务支持针对部分 Blob 内容的请求。 包含在使用版本 2013-08-15 及更高版本发出的请求时。
x-ms-blob-committed-block-count Blob 中存在的已提交块数。 仅针对追加 Blob 返回此标头。
x-ms-server-encrypted: true/false 版本 2015-12-11 及更高版本。 如果使用指定的算法完全加密 Blob 数据和应用程序元数据,则此标头的值设置为 true 。 否则,如果 blob 未加密,或者仅加密 blob/应用程序元数据的一部分) ,则值设置为 false (。
x-ms-encryption-key-sha256 版本 2019-02-02 及更高版本。 如果使用客户提供的密钥加密 blob,则返回此标头。
x-ms-encryption-context 版本 2021-08-06 及更高版本。 如果设置了加密上下文属性值,它将返回设置值。 仅当为帐户启用分层命名空间时有效。
x-ms-encryption-scope 版本 2019-02-02 及更高版本。 如果 Blob 使用加密范围加密,则返回此标头。
x-ms-access-tier 版本 2017-04-17 及更高版本。 高级存储帐户或 Blob 存储或常规用途 v2 帐户中的块 Blob 层上的页 Blob 层。 有关允许的高级页 Blob 层的列表,请参阅 VM 的高性能高级存储和托管磁盘。 对于 Blob 存储或常规用途 v2 帐户,有效值为 HotCoolColdArchive注意:Cold 版本 2021-12-02 及更高版本支持层。 有关标准 Blob 帐户块 Blob 级别分层的详细信息 ,请参阅热、冷和存档存储层
x-ms-access-tier-inferred: true 版本 2017-04-17 及更高版本。 仅适用于 高级存储 帐户上的页 Blob。 如果未在 Blob 上显式设置访问层,则会根据其内容长度推断该层,并返回值为 的 true此标头。 对于 Blob 存储或常规用途 v2 帐户上的块 Blob,如果 Blob 未设置访问层,则可以从存储帐户属性推断该层。 仅当推断块 Blob 层时,才会设置此标头。
x-ms-archive-status 版本 2017-04-17 及更高版本。 对于 Blob 存储或常规用途 v2 帐户,有效值为 rehydrate-pending-to-hotrehydrate-pending-to-coolrehydrate-pending-to-cold。 如果 Blob 正在解除冻结并且不完整,则返回此标头,这两者都指示解除冻结处于挂起状态,并显示目标层。 有关标准 Blob 帐户块 Blob 级别分层的详细信息,请参阅 热、冷和存档存储层
x-ms-access-tier-change-time 版本 2017-04-17 及更高版本。 指示上次在 对象上更改层的时间。 仅当已设置块 Blob 上的层时,才会返回此标头。 日期格式遵循 RFC 1123。 有关详细信息,请参阅 在标头中表示日期/时间值。 有关标准 Blob 帐户块 Blob 级别分层的详细信息,请参阅 热、冷和存档存储层
x-ms-client-request-id 可用于对请求及其相应响应进行故障排除。 如果请求中存在,则此标头的值等于标头的值 x-ms-client-request-id ,并且该值最多为 1,024 个可见 ASCII 字符。 x-ms-client-request-id如果请求中不存在标头,则响应中不存在此标头。
x-ms-rehydrate-priority 版本 2019-12-12 及更高版本。 如果对象处于解除冻结挂起状态,则返回此标头的优先级为解除冻结。 有效值为 High/Standard。 有关标准 Blob 帐户块 Blob 级别分层的详细信息 ,请参阅热存储层、冷存储层和存档存储层
x-ms-or-{policy-id}_{rule-id} 版本 2019-12-12 及更高版本,仅针对块 Blob 返回。 policy-id 是一个 GUID 值,表示存储帐户上对象复制策略的标识符。 rule-id 是一个 GUID 值,表示 Blob 容器上策略规则的标识符。 如果帐户为 ObjectReplication-enabled,则此标头的值表示具有给定策略和规则标识符(或 completefailed)的 Blob 的复制状态。
x-ms-or-policy-id 版本 2019-12-12 及更高版本,仅针对块 Blob 返回。 如果帐户为 ObjectReplication-enabled,则此标头的值表示控制复制的策略。
x-ms-last-access-time 版本 2020-02-10 及更高版本。 根据存储帐户的上次访问时间跟踪策略指示上次访问 Blob 数据的时间。 如果存储帐户没有上次访问时间跟踪策略,或者策略被禁用,则不会返回 标头。 有关设置存储帐户的上次访问时间跟踪策略的信息,请参阅 Blob 存储 API
x-ms-blob-sealed 版本 2019-12-12 及更高版本,仅针对追加 Blob 返回。 如果已密封追加 blob,则值为 true。 有关详细信息,请参阅 追加 Blob 密封
x-ms-immutability-policy-until-date 版本 2020-06-12 及更高版本。 指定 Blob 上设置的“保留至”日期。 这是可以保护 Blob 不被修改或删除的日期。 仅当在 Blob 上设置了不可变性策略时返回。 此标头的值采用RFC1123格式。
x-ms-immutability-policy-mode: unlocked/locked 版本 2020-06-12 及更高版本。 不可变性策略模式,如果在 Blob 上设置了不可变性策略,则返回该模式。 unlocked/locked值为 。 unlocked 指示用户可以通过增加或减少保留日期来更改策略。 locked 指示禁止这些操作。
x-ms-legal-hold: true/false 版本 2020-06-12 及更高版本。 如果 Blob 上没有法定保留,则不会返回此标头。 如果 blob 包含法定保留并且其值为 true ,则此标头的值设置为 true。 否则,如果 blob 包含法定保留,并且其值为 false,则该值设置为 false。
x-ms-owner 版本 2020-06-12 及更高版本。 仅适用于启用了分层命名空间的帐户。 返回文件或目录的所有者用户。
x-ms-group 版本 2020-06-12 及更高版本。 仅适用于启用了分层命名空间的帐户。 返回文件或目录的所有者组。
x-ms-permissions 版本 2020-06-12 及更高版本。 仅适用于启用了分层命名空间的帐户。 返回为文件或目录上的用户和其他人员设置的权限。 每个单独的权限采用 [r,w,x,-]{3} 格式。
x-ms-resource-type 版本 2020-10-02 及更高版本。 仅适用于启用了分层命名空间的帐户。 返回路径的资源类型,可以是 filedirectory
x-ms-expiry-time 版本 2020-02-10 及更高版本。 仅适用于启用了分层命名空间的帐户。 返回在 Blob 上设置的过期时间。 仅针对设置了过期时间的文件返回 。

响应正文

无。

示例响应

Response Status:  
HTTP/1.1 200 OK  
  
Response Headers:  
x-ms-meta-Name: myblob.txt  
x-ms-meta-DateUploaded: <date>  
x-ms-blob-type: AppendBlob  
x-ms-lease-status: unlocked  
x-ms-lease-state: available  
Content-Length: 11  
Content-Type: text/plain; charset=UTF-8  
Date: <date>  
ETag: "0x8CAE97120C1FF22"  
Accept-Ranges: bytes  
x-ms-blob-committed–block-count: 1  
x-ms-version: 2015-02-21  
Last-Modified: <date>  
Server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0  
x-ms-copy-id: 36650d67-05c9-4a24-9a7d-a2213e53caf6  
x-ms-copy-source: <url>  
x-ms-copy-status: success  
x-ms-copy-progress: 11/11  
x-ms-copy-completion-time: <date>  
  

授权

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

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用户、组或服务主体调用Get Blob Properties操作所需的 RBAC 操作,以及包含此操作的最小特权内置 Azure RBAC 角色:

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

注解

若要确定操作是否已Copy Blob完成,请首先检查以确保x-ms-copy-id标头值与原始调用Copy Blob提供的副本 ID 匹配。 匹配可确保另一个应用程序不会中止复制并启动新 Copy Blob 操作。 接下来,检查 标头x-ms-copy-status: success。 但请注意,Blob 上除 、 Put PagePut Block 操作之外Lease的所有写入操作都将从 blob 中删除所有x-ms-copy-*属性。 使用早于 2012-02-12 版本的操作也不会复制 Copy Blob 这些属性。

x-ms-copy-status-description 包含有关 Copy Blob 错误的详细信息。 x-ms-copy-status-description下表描述了这些值:

组件 说明
HTTP 状态代码 一个指定失败的标准 3 位数整数。
错误代码 描述 Azure 在 ErrorCode> 元素中<提供的错误的关键字 (keyword) 。 <如果未显示 ErrorCode> 元素,则使用与 HTTP 规范中的 3 位 HTTP 状态代码关联的具有标准错误文本的关键字 (keyword) 。 有关详细信息,请参阅常见 REST API 错误代码
信息 故障的详细说明,用引号引起来。

x-ms-copy-status下表描述了常见故障方案的 和 x-ms-copy-status-description 值:

重要

即使没有版本更改,以下错误说明也会更改而不会发出警告,因此文本可能不完全匹配。

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

x-ms-last-access-time 根据存储帐户的上次访问时间跟踪策略,跟踪访问 Blob 数据的时间。 访问 Blob 的元数据不会更改其上次访问时间。

计费

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

操作 存储帐户类型 计费类别
获取 Blob 属性 高级块 blob
标准常规用途 v2
其他操作
获取 Blob 属性 标准常规用途 v1 读取操作

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

另请参阅

授权对 Azure 存储的请求
状态和错误代码
Blob 存储错误代码