设置对象标签-PutObjectTagging
功能介绍
OBS支持使用对象标签对桶中的对象进行分类,调用本接口可为已有对象添加或更新标签。了解更多对象标签相关信息,请参考对象标签。
接口约束
- 对象标签功能目前在公测阶段,免费使用;公测结束后,将收取费用。
- 用户读写对象标签必须拥有对应标签操作权限,当前可通过设置桶策略授权给其他用户。默认情况下只有对象的所有者可以执行此操作。
- 并行文件系统不支持给文件添加标签。
- 暂不支持IAM细粒度和桶策略授权和鉴权。
授权信息
您必须是对象拥有者或拥有设置对象标签的权限,才能调用本接口,建议使用IAM或桶策略进行授权。了解更多OBS授权方式请参见OBS不同权限控制方式的区别。
- 如果使用IAM授权,那么请在“角色与策略授权”、“身份策略授权”两种IAM授权方式中选择一种,并配置相应权限:
- 如果使用角色与策略授权(旧版IAM,即IAM v3接口),需具备obs:object:PutObjectTagging(未开启多版本)、obs:object:PutObjectVersionTagging(开启或暂停多版本)权限,授权操作请参见创建IAM自定义策略。
- 如果使用身份策略授权(新版IAM,即IAM v5接口),如下表所示,需具备obs:object:putObjectTagging(未开启多版本)、obs:object:putObjectVersionTagging(开启或暂停多版本)权限,授权操作请参见创建IAM自定义身份策略。
授权项
Action
访问级别
Access Level
资源类型(*为必须)
Resource Type (*: required)
Condition Key
Alias
依赖的授权项
Dependencies
obs:object:putObjectTagging(未开启多版本)
obs:object:putObjectVersionTagging(开启或暂停多版本)
Tagging
object *
-
-
-
- g:RequestTag/<tag-key>
- g:TagKeys
- obs:EpochTime
- obs:SourceIp
- obs:TlsVersion
- obs:CustomDomain
- 如果使用桶策略进行授权,需具备obs:object:PutObjectTagging(未开启多版本)、obs:object:PutObjectVersionTagging(开启或暂停多版本)权限,具体操作请参见自定义创建桶策略。
请求消息样式
PUT /objectname?tagging&versionId=versionid HTTP/1.1
Host: bucketname.obs.cn-north-4.myhuaweicloud.com
Date: date
Authorization: authorization string
Content-MD5: md5
<?xml version="1.0" encoding="UTF-8">
<Tagging>
<TagSet>
<Tag>
<Key>Key</Key>
<Value>Value</Value>
</Tag>
</TagSet>
</Tagging> URI参数(URI Parameters)
该请求使用的消息参数如下表1 请求消息参数所示。
请求头参数(Request headers)
该请求使用的消息头如下表2 请求消息头所示。
请求体参数(Request body)
在此请求中,需要在请求的消息体中配置对象的标签。标签的配置信息以XML格式上传。具体的配置元素如下表3 对象的标签配置元素所示。
响应消息样式
1 2 3 4 5 | HTTP/1.1 status_code x-obs-request-id: request id x-obs-id-2: id Content-Length: length Date: date |
响应头 (Response Headers)
该请求的响应消息使用公共响应头,具体请参考表1。
响应体 (Response Body)
该请求的响应消息中不带有响应元素。
错误响应消息
除了公共的错误码外,此接口还会返回一些其他的错误码。下表中列出本接口的一些常见错误,以及可能原因。如下表4 配置对象标签错误码列表。
请求示例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | PUT /objectname?tagging&versionId=G001018455096CE600005306000000DD HTTP/1.1 User-Agent: curl/7.29.0 Host: examplebucket.obs.cn-north-4.myhuaweicloud.com Accept: */* Date: Wed, 27 Jun 2018 13:22:50 GMT Authorization: OBS H4IPJX0TQTHTHEBQQCEC:Pf1ZyGvVYg2BzOjokZ/BAeR1mEQ= Content-MD5: MnAEvkfQIGnBpchOE2U6Og== Content-Length: 182 <Tagging xmlns="http://obs.cn-north-4.myhuaweicloud.com/doc/2015-06-30/"> <TagSet> <Tag> <Key>TagName1</Key> <Value>TagSetValue1</Value> </Tag> </TagSet> </Tagging> |
响应示例
1 2 3 4 5 | HTTP/1.1 200 OK Server: OBS x-obs-request-id: BF26000001643FEBA09B1ED46932CD07 x-obs-id-2: 32AAAQAAEAABSAAgAAEAABAAAQAAEAABCSEZp87iEirC6DggPB5cN49pSvHBWClg Date: Wed, 27 Jun 2018 13:22:50 GMT |
使用SDK调用接口
建议您使用OBS SDK调用接口。SDK对API进行了封装以简化您的开发工作,直接调用SDK接口函数即可访问OBS,无需手动计算签名。