功能描述
COS 支持为已存在的对象设置标签。PUT Object tagging 接口通过为对象添加键值对作为对象标签,可以协助您分组管理已有的对象资源,详情请参见 对象标签概述。
如您使用子账号调用此项接口,请确保您已经在主账号处获取了PUT Object tagging这个接口的权限。
注意
- 目前对象标签功能最多支持一个对象下设置10个不同的标签。
- 如果已存在对象标签,调用此接口会覆盖掉已有的标签。
版本控制
如果您的存储桶开启了版本控制,并且需要对指定版本的对象添加标签,可以在发起请求时携带 VersionId 参数,对象标签将添加到指定的对象版本中。
请求
请求示例
PUT /<ObjectKey>?tagging&VersionId=VersionId HTTP 1.1
Host:<BucketName-APPID>.<Endpoint>
Date: GMT Date
Authorization: Auth String
说明
- 其中 为带 APPID 后缀的存储桶名字,例如 examplebucket-1250000000。
- Authorization: Auth String(详情请参阅请求签名文档)。
请求参数
| 名称 | 描述 | 类型 | 是否必选 |
|---|---|---|---|
| versionId | 当启用版本控制时,指定要操作的对象版本 ID,如不指定则将添加标签到最新版本的对象。 | string | 否 |
请求头
此接口仅使用公共请求头部,详情请参见 公共请求头部 文档。
请求体
该请求需要设置如下标签集合:
<?xml version="1.0" encoding="UTF-8" ?>
<Tagging>
<TagSet>
<Tag>
<Key>string</Key>
<Value>string</Value>
</Tag>
</TagSet>
</Tagging>
具体的数据描述如下:
| 节点名称(关键字) | 父节点 | 描述 | 类型 | 是否必选 |
|---|---|---|---|---|
| Tagging | 无 | 标签集合 | Container | 是 |
| TagSet | Tagging | 标签集合 | Container | 是 |
| Tag | Tagging.TagSet | 标签集合,最多支持10个标签 | Containers | 是 |
| Key | Tagging.TagSet.Tag | 标签键,不可为空,长度小于128字节,支持英文字母、数字、空格、加号、减号、下划线、等号、点号、冒号、斜线 | String | 是 |
| Value | Tagging.TagSet.Tag | 标签值,长度小于256字节,支持英文字母、数字、空格、加号、减号、下划线、等号、点号、冒号、斜线 | String | 是 |
响应
响应头
此接口仅返回公共响应头部,详情请参见 公共响应头部 文档。
响应体
该请求响应体为空。
错误码
此接口遵循统一的错误响应和错误码,详情请参见 错误码 文档。
实际案例
请求
如下请求向存储桶examplebucket-1250000000中的对象exampleobject.txt写入了{age:18}和{name:xiaoming}两个标签。COS 配置标签成功并返回200成功请求。
PUT /exampleobject.txt?tagging HTTP/1.1
User-Agent: curl/7.29.0
Accept: */*
Host: examplebucket-1250000000.cos.city.yfm4.fsphere.cn
Authorization: Auth String
Content-Length: 127
Content-MD5:MD5 String
Content-Type: application/xml
<Tagging>
<TagSet>
<Tag>
<Key>age</Key>
<Value>18</Value>
</Tag>
<Tag>
<Key>name</Key>
<Value>xiaoming</Value>
</Tag>
</TagSet>
</Tagging>
响应
HTTP/1.1 200 OK
Content-Type: application/xml
Content-Length: 0
Connection: keep-alive
Date: Fri, 19 Jan 2020 11:40:22 GMT
x-cos-request-id: NWE2MWQ5MjZfMTBhYzM1MGFfMTA5ODVfMTVj****