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

设置 Blob 标记

Set Blob Tags操作将指定的 blob 的用户定义标记设置为一个或多个键值对。

请求

可以按如下方式构建Set Blob Tags请求。 建议使用 HTTPS。 将 我的帐户 替换为你的存储帐户的名称:

PUT 方法请求 URI HTTP 版本
https://myaccount.blob.core.windows.net/mycontainer/myblob?comp=tags

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

URI 参数

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

参数 说明
versionid 对于版本2019-12-12 和更高版本是可选的。 Versionid 参数是一个不透明 DateTime 的值,如果存在,则指定要检索的 blob 的版本。
timeout 可选。 timeout 参数以秒表示。 有关详细信息,请参阅为 Blob 服务操作设置超时

请求标头

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

请求标头 说明
Authorization 必需。 指定授权方案、帐户名和签名。 有关详细信息,请参阅授权 Azure 存储的请求
Datex-ms-date 必需。 指定请求的协调世界时 (UTC)。 有关详细信息,请参阅授权 Azure 存储的请求
x-ms-version 所有授权的请求都需要此权限。 指定用于此请求的操作的版本。 有关详细信息,请参阅Azure 存储服务的版本控制
Content-Length 必需。 请求内容的长度(字节)。 请注意,此标头是指标记文档的内容长度,而不是 blob 本身的内容长度。
Content-Type 必需。 此标头的值应为 application/xml;字符集 = UTF-8。
Content-MD5 可选。 请求内容的 MD5 哈希值。 此哈希值用于验证传输期间请求内容的完整性。 如果这两个哈希值不匹配,操作会失败,并显示错误代码 400(错误请求)。

请注意,此标头与请求内容而不是 Blob 本身的内容关联。
x-ms-content-crc64 可选。 请求内容的 CRC64 哈希。 此哈希值用于验证传输期间请求内容的完整性。 如果这两个哈希值不匹配,操作会失败,并显示错误代码 400(错误请求)。

请注意,此标头与请求内容而不是 Blob 本身的内容关联。

如果同时 Content-MD5 x-ms-content-crc64 存在和标头,则请求将失败,错误代码为 400 (错误请求) 。
x-ms-lease-id:<ID> 如果 Blob 具有活动租约,则是必需的。

要在具有活动租约的 Blob 上执行此操作,请为此标头指定有效的租约 ID。 如果请求中未指定有效的租约 ID,则操作将失败,且出现状态码 403(禁止访问)。
x-ms-client-request-id 可选。 提供客户端生成的、具有1个 KiB 字符限制的不透明值,当启用存储分析日志记录时,将记录在分析日志中。 强烈建议使用此标头将客户端活动与服务器接收的请求相关联。 有关详细信息,请参阅关于存储分析日志记录Azure 日志记录:使用日志跟踪存储请求

x-ms-if-tags仅当满足指定条件时,此操作才支持条件标头来设置 blob 标记。 有关详细信息,请参阅为 Blob 服务操作指定条件标头

请求正文

请求正文的格式如下所示:

<?xml version="1.0" encoding="utf-8"?>  
<Tags>  
    <TagSet>  
        <Tag>  
            <Key>tag-name-1</Key>  
            <Value>tag-value-1</Value>  
        </Tag>  
        <Tag>  
            <Key>tag-name-2</Key>  
            <Value>tag-value-2</Value>  
        </Tag>  
    </TagSet>  
</Tags>  

请求正文必须是格式正确的 UTF-8 XML 文档,该文档包含一个表示 blob 标记的标记集。

标记集最多可以包含10个标记。 标记键和值区分大小写。 标记键的长度必须介于1到128个字符之间,且标记值必须介于0到256个字符之间。 有效的标记键和值字符包括:

  • 小写字母和大写字母 (a-z,a-z)
  • 数字 (0-9)
  • 空格 ( )
  • 加 (+) ,减 (-) , (,) ,斜线号 (/) ,冒号 (: ) ,等于 (=) ,以及下划线 (_)

响应

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

状态代码

成功的操作将返回状态代码 204(无内容)。

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

响应标头

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

响应标头 说明
x-ms-request-id 此标头唯一地标识发出的请求,并且可用于解决请求问题。 有关详细信息,请参阅 API 操作故障排除
x-ms-version 指示用于执行请求的 BLOB 服务的版本。
Date 服务生成的 UTC 日期/时间值指示启动响应的时间。
x-ms-client-request-id 此标头可用于排查请求和相应的响应。 如果此标头的值 x-ms-client-request-id 在请求中存在,并且其值最多为1024,则为该标头的值。 如果 x-ms-client-request-id 请求中不存在该标头,则此标头将不会出现在响应中。

响应正文

无。

授权

此操作可由帐户所有者以及具有对 blob 标记具有权限的共享访问签名的任何人调用 (t SAS 权限) 。

此外,具有 Microsoft.Storage/storageAccounts/blobServices/containers/blobs/tags/write 权限的 RBAC 用户也可执行此操作。

备注

Set Blob TagsREST API 版本2019-12-12 及更高版本支持该操作。

Set Blob Tags操作将覆盖 blob 上的所有现有标记。 若要从 blob 中删除所有标记,请 Set Blob Tags 使用空发送请求 <TagSet>

此操作不会更新该 blob 的 ETag 或上次修改时间。 可以在存档的 blob 上设置标记。

存储服务维护 blob 及其标记之间的高度一致性。 对 Blob 标记的更改对 Blob 的后续 Get Blob Tags 操作立即可见。 但是,辅助索引最终是一致的;对 Blob 标记的更改可能不会立即对操作 Find Blobs by Tags 可见。

如果请求提供无效标记,Blob 服务将返回状态代码 400 (错误请求) 。

另请参阅

通过 Blob 索引管理和查找 Azure Blob 存储上的数据
授权请求Azure 存储
状态和错误代码
Blob 服务错误代码