OSS支持以标签的方式对存储的对象(Object)进行分类,方便您管理拥有相同标签的Object,例如通过生命周期规则为相同标签的Object指定过期天数或转换其存储类型。object-tagging命令用于添加、修改、获取和删除对象标签。
注意事项
要添加或修改Object标签,您必须具有
oss:PutObjectTagging
权限;要获取Object标签信息,您必须具有oss:GetObjectTagging
权限;要删除Object标签信息,您必须具有oss:DeleteObjectTagging
权限。具体操作,请参见为RAM用户授权自定义的权限策略。
从ossutil 1.6.16版本开始,命令行中Binary名称支持直接使用ossutil,您无需根据系统刷新Binary名称。如果您的ossutil版本低于1.6.16,则需要根据系统刷新Binary名称。更多信息,请参见命令行工具ossutil命令参考。
关于对象标签的更多信息,请参见对象标签。
命令格式
ossutil object-tagging oss://bucketname[/prefix][key#value]
--method <value>
[--encoding-type <value>]
[-r,--recursive]
[--payer <value>]
[--version-id <value>]
参数及选项说明如下:
配置项 | 说明 |
bucketname | Bucket名称。 |
prefix | Bucket下的资源,例如目录、文件等。 |
key | 对象标签使用一组键值对(Key-Value)标记对象。单个文件可设置最多10个标签,Key不可重复。设置Key时,需满足以下条件:
|
value | 设置Value时,需满足以下条件:
|
--method | 请求类型。取值如下:
|
--encoding-type | 对 |
-r,--recursive | 如果指定该选项时,ossutil将为Bucket下所有符合prefix条件的Object设置标签。如果不指定该选项,则ossutil只为指定Object设置标签。 |
--version-id | Object的指定版本。仅适用于已开启或暂停版本控制状态Bucket下的Object。 |
--payer | 请求的支付方式。如果希望访问指定路径下的资源产生的流量、请求次数等费用由请求者支付,请将此选项的值设置为requester。 |
添加或修改Object标签
只有Bucket拥有者以及被授予PutObjectTagging的RAM用户拥有设置或修改Object标签的权限。
添加或修改Object标签示例如下:
若Object未设置标签,执行如下操作将为Object添加指定的标签;若Object已配置标签,执行如下操作将覆盖Object原有标签。
为目标存储空间examplebucket下的exampleobject.txt文件设置key为tagkey,value为tagvalue的标签信息。
ossutil object-tagging --method put oss://examplebucket/exampleobject.txt tagkey#tagvalue
为目标存储空间examplebucket下的exampleobject.png文件设置两组标签信息。其中一组标签信息为tagkey1#tagvalue1,另一组标签信息为tagkey2#tagvalue2。
ossutil object-tagging --method put oss://examplebucket/exampleobject.txt tagkey1#tagvalue1 tagkey2#tagvalue2
为目标存储空间examplebucket下与前缀test匹配的多个文件设置三组标签信息,标签信息分别为tagkey3#tagvalue3、tagkey4#tagvalue4和tagkey5#tagvalue5。
ossutil object-tagging --method put oss://examplebucket/test -r tagkey3#tagvalue3 tagkey4#tagvalue4 tagkey5#tagvalue5
为已开启版本控制的存储空间examplebucket下的exampleobject.txt的指定版本设置key为tagkey6,value为tagvalue6的标签信息。
ossutil object-tagging --method put oss://examplebucket/exampleobject.txt tagkey6#tagvalue6 --version-id CAEQARiBgID8rumR2hYiIGUyOTAyZGY2MzU5MjQ5ZjlhYzQzZjNlYTAyZDE3****
关于获取Object所有版本的具体操作,请参见ls(列举账号级别下的资源)。
以上示例操作成功后,返回结果中将包含设置标签信息所用时长,示例如下:
0.106852(s) elapsed
获取Object标签信息
只有Bucket拥有者以及被授予GetObjectTagging的RAM用户拥有获取Object标签信息的权限。
获取Object标签信息的示例如下:
获取单个Object的标签信息
获取目标存储空间examplebucket下exampleobject.txt的标签信息。
ossutil object-tagging --method get oss://examplebucket/exampleobject.txt
以下输出结果表明已成功获取exampleobject.txt的标签信息,标签信息的key为tagkey,value为tagvalue。
object index tag index tag key tag value object --------------------------------------------------------------------------- 1 0 "tagkey" "tagvalue" oss://examplebucket/exampleobject.txt 0.068156(s) elapsed
获取多个Object的标签信息
获取目标存储空间examplebucket下与前缀test匹配的文件的标签信息。
ossutil object-tagging --method get oss://examplebucket/test -r
以下输出结果表明已成功获取与前缀test匹配的所有文件的标签信息,分别为tagkey3#tagvalue3、tagkey4#tagvalue4和tagkey5#tagvalue5。
object index tag index tag key tag value object --------------------------------------------------------------------------- 1 0 "tagkey3" "tagvalue3" oss://examplebucket/test 1 1 "tagkey4" "tagvalue4" oss://examplebucket/test 1 2 "tagkey5" "tagvalue5" oss://examplebucket/test 0.093040(s) elapsed
删除Object标签信息
只有Bucket拥有者以及被授予DeletetObjectTagging的RAM用户拥有删除Object标签信息的权限。
删除Object标签信息的示例如下:
删除单个Object的标签信息
删除目标存储空间examplebucket下exampleobject.txt的标签信息。
ossutil object-tagging --method delete oss://examplebucket/exampleobject.txt
删除多个Object的标签信息
删除目标存储空间examplebucket下与前缀test匹配的所有文件的标签信息。
ossutil object-tagging --method delete oss://examplebucket/test -r
以上示例操作成功后,返回结果中将包含删除标签信息所用时长,示例如下:
0.148970(s) elapsed
通用选项
当您需要通过命令行工具ossutil切换至另一个地域的Bucket时,可以通过-e选项指定该Bucket所属的Endpoint。当您需要通过命令行工具ossutil切换至另一个阿里云账号下的Bucket时,可以通过-i选项指定该账号的AccessKey ID,并通过-k选项指定该账号的AccessKey Secret。
例如您需要为另一个阿里云账号下,华东2(上海)地域下目标存储空间testbucket下的exampletest.png文件设置key为tagkey7、value为tagvalue7的标签信息,命令如下:
ossutil object-tagging --method put oss://testbucket/exampletest.png tagkey7#tagvalue7 -e oss-cn-shanghai.aliyuncs.com -i LTAI4Fw2NbDUCV8zYUzA**** -k 67DLVBkH7EamOjy2W5RVAHUY9H****
关于此命令的其他通用选项的更多信息,请参见通用选项。