更新时间:2024-11-25 GMT+08:00
分享

设置桶标签

功能介绍

OBS使用PUT操作为一个已经存在的桶添加标签。

为桶添加标签后,该桶上所有请求产生的计费话单里都会带上这些标签,从而可以针对话单报表做分类筛选,进行更详细的成本分析。例如:某个应用程序在运行过程会往桶里上传数据,我们可以用应用名称作为标签,设置到被使用的桶上。在分析话单时,就可以通过应用名的标签来分析此应用的成本。

要正确执行此操作,需要确保执行者有PutBucketTagging权限。缺省情况下只有桶的所有者可以执行此操作,也可以通过设置桶策略或用户策略授权给其他用户。

接口约束

  • 每个桶最多能设置10个标签。

请求消息样式

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
PUT /?tagging HTTP/1.1 
Host: bucketname.obs.cn-north-4.myhuaweicloud.com 
Date: date
Authorization: authorization string
Content-MD5: md5
<Tagging> 
    <TagSet>
        <Tag> 
            <Key>Tag Name</Key> 
            <Value>Tag Value</Value> 
        </Tag> 
    </TagSet> 
</Tagging>

请求消息参数

该请求消息中不使用消息参数。

请求消息头

该请求使用的消息头如下表1所示。

表1 请求消息头

消息头名称

描述

是否必选

Content-MD5

参数解释:

按照RFC 1864标准计算出消息体的MD5摘要字符串,即消息体128-bit MD5值经过base64编码后得到的字符串。也支持设置Content-SHA256头域,其值为消息体256-bit SHA256值经过base64编码后得到的字符串,Content-MD5和Content-SHA256二选一。

类型:String

示例:n58IG6hfM7vqI4K0vnWpog==

约束限制:

取值范围:

默认取值:

请求消息元素

在此请求中,需要在请求的消息体中配置桶的标签。标签的配置信息以XML格式上传。具体的配置元素如表2

表2 桶的标签配置元素

消息头名称

描述

是否必选

Tagging

参数解释:

TagSet和Tag的根元素

类型:Container

父元素:无

TagSet

参数解释:

Tag的集合元素

类型:Container

父元素:Tagging

Tag

参数解释:

Tag的信息元素

类型:Container

父元素:TagSet

Key

参数解释:

标签的名字。类型:String。父元素:Tag

约束限制:

  • 标签的键名(Key)的最大长度为36个字符。
  • 标签的键名(Key)和键值(Value)不能包含字符“,”、“*”、“|”、“/”、“<”、“>”、“=”、“\”以及ASCII码0x00--0x1F的控制字符,在发送到服务器之前,必须将键名(Key)和键值(Value)进行UrlEncode编码。

取值范围:

长度大于0小于36的字符串

默认取值:

Value

参数解释:

标签的值。类型:String。父元素:Tag

约束限制:

  • 标签的键值(Value)的最大长度为43个字符。
  • 标签的键名(Key)和键值(Value)不能包含字符“,”、“*”、“|”、“/”、“<”、“>”、“=”、“\”以及ASCII码0x00--0x1F的控制字符,在发送到服务器之前,必须将键名(Key)和键值(Value)进行UrlEncode编码。

取值范围:

长度大于等于0小于43的字符串。

默认取值:

响应消息样式

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

响应消息头

该请求的响应消息使用公共消息头,具体请参考表1

响应消息元素

该请求的响应消息中不带有响应元素。

错误响应消息

除了公共的错误码外,此接口还会返回一些其他的错误码。下表中列出本接口的一些常见错误,以及可能原因。如表3

表3 配置桶标签错误码列表

错误码

描述

HTTP状态码

InvalidTagError

配置桶标签时,提供了无效的Tag。

400 Bad Request

MalformedXMLError

配置桶标签时,提供的xml格式错误

400 Bad Request

请求示例

例如要为桶名为examplebucket的桶打上键名(Key)为TagKey(Name1),键值(Value)为TagValue(Value1)的标签,则发送的请求为:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
PUT /?tagging 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>TagKey%28Name1%29</Key>
      <Value>TagValue%28Value1%29</Value>
    </Tag>
  </TagSet>
</Tagging>

响应示例

1
2
3
4
5
HTTP/1.1 204 No Content
Server: OBS
x-obs-request-id: BF26000001643FEBA09B1ED46932CD07
x-obs-id-2: 32AAAQAAEAABSAAgAAEAABAAAQAAEAABCSEZp87iEirC6DggPB5cN49pSvHBWClg
Date: Wed, 27 Jun 2018 13:22:50 GMT

相关文档