设置对象标签后,您可以根据需要获取Object的标签信息。当存储空间(Bucket)已开启版本控制时,OSS默认只获取Object当前版本的标签信息,您可以通过指定Object的版本ID(versionId)来获取Object指定版本的标签信息。
注意事项
本文以华东1(杭州)外网Endpoint为例。如果您希望通过与OSS同地域的其他阿里云产品访问OSS,请使用内网Endpoint。关于OSS支持的Region与Endpoint的对应关系,请参见访问域名和数据中心。
本文以OSS域名新建OSSClient为例。如果您希望通过自定义域名、STS等方式新建OSSClient,请参见初始化。
要获取对象标签,您必须具有
oss:GetObjectTagging
权限。具体操作,请参见为RAM用户授权自定义的权限策略。
获取Object标签信息
当存储空间(Bucket)未开启版本控制时,您可以根据需要获取Object标签信息。当Bucket已开启版本控制时,OSS默认只获取Object当前版本标签信息。
以下代码用于获取目标存储空间examplebucket中exampledir目录下的exampleobject.txt文件的标签信息。
# -*- coding: utf-8 -*-
import oss2
from oss2.models import Tagging, TaggingRule
from oss2.credentials import EnvironmentVariableCredentialsProvider
# 从环境变量中获取访问凭证。运行本代码示例之前,请确保已设置环境变量OSS_ACCESS_KEY_ID和OSS_ACCESS_KEY_SECRET。
auth = oss2.ProviderAuth(EnvironmentVariableCredentialsProvider())
# yourEndpoint填写Bucket所在地域对应的Endpoint。以华东1(杭州)为例,Endpoint填写为https://oss-cn-hangzhou.aliyuncs.com。
# 填写Bucket名称。
bucket = oss2.Bucket(auth, 'https://oss-cn-hangzhou.aliyuncs.com', 'examplebucket')
# 填写Object完整路径,Object完整路径中不能包含Bucket名称,例如exampledir/exampleobject.txt。
object_name = 'exampledir/exampleobject.txt'
# 获取文件的标签。
result = bucket.get_object_tagging(object_name)
# 查看标签信息。
for key in result.tag_set.tagging_rule:
print('tagging key: {}, value: {}'.format(key, result.tag_set.tagging_rule[key]))
获取Object指定版本标签信息
当Bucket已开启版本控制时,通过指定Object的版本ID(versionId),您可以获取Object指定版本标签信息。
以下代码用于获取目标存储空间examplebucket中exampledir目录下的exampleobject.txt文件指定版本的标签信息。
说明
关于获取versionId的具体操作,请参见列举文件。
# -*- coding: utf-8 -*-
import oss2
from oss2.models import Tagging
from oss2.credentials import EnvironmentVariableCredentialsProvider
# 从环境变量中获取访问凭证。运行本代码示例之前,请确保已设置环境变量OSS_ACCESS_KEY_ID和OSS_ACCESS_KEY_SECRET。
auth = oss2.ProviderAuth(EnvironmentVariableCredentialsProvider())
# yourEndpoint填写Bucket所在地域对应的Endpoint。以华东1(杭州)为例,Endpoint填写为https://oss-cn-hangzhou.aliyuncs.com。
# 填写Bucket名称。
bucket = oss2.Bucket(auth, 'https://oss-cn-hangzhou.aliyuncs.com', 'examplebucket')
# 填写Object完整路径,Object完整路径中不能包含Bucket名称,例如exampledir/exampleobject.txt。
object_name = 'exampledir/exampleobject.txt'
# 填写Object的版本ID,例如CAEQMxiBgICAof2D0BYiIDJhMGE3N2M1YTI1NDQzOGY5NTkyNTI3MGYyMzJm****。
version_id = 'CAEQMxiBgICAof2D0BYiIDJhMGE3N2M1YTI1NDQzOGY5NTkyNTI3MGYyMzJm****'
params = dict()
params['versionId'] = version_id
result = bucket.get_object_tagging(object_name, params=params)
print(result)
相关文档
关于获取对象标签的完整示例代码,请参见GitHub示例。
关于获取对象标签的API接口说明,请参见GetObjectTagging。