バケットタグを使用すると、Object Storage Service (OSS) バケットを分類して効率的に管理できます。たとえば、ListBuckets 操作を呼び出すときに、特定のタグが付いたバケットのみをリストできます。
使用上の注意
このトピックでは、中国 (杭州) リージョンのパブリックエンドポイントが使用されています。 OSS と同じリージョン内の他の Alibaba Cloud サービスから OSS にアクセスする場合は、内部エンドポイントを使用します。 OSS のリージョンとエンドポイントの詳細については、「OSS のリージョンとエンドポイント」をご参照ください。
このトピックでは、アクセス認証情報は環境変数から取得されます。 アクセス認証情報を設定する方法の詳細については、「OSS SDK for Python 1.0 を使用してアクセス認証情報を設定する」をご参照ください。
このトピックでは、OSS エンドポイントを使用して OSSClient インスタンスが作成されます。 カスタムドメイン名または Security Token Service (STS) を使用して OSSClient インスタンスを作成する場合は、「初期化」をご参照ください。
バケットオーナーと
oss:PutBucketTagging権限が付与されているユーザーのみが、バケットのタグを設定できます。 他のユーザーがバケットのタグを設定しようとすると、AccessDenied エラーコードを含む 403 Forbidden メッセージが返されます。1 つのバケットに最大 20 個のタグを設定できます。
タグのキーと値は UTF-8 でエンコードする必要があります。
キーは最大 64 文字の長さで、大文字と小文字が区別されます。 キーを空にすることはできません。 キーは
http://、https://、またはAliyunで始めることはできません。 これらのプレフィックスは大文字と小文字が区別されません。タグの値は最大 128 文字の長さで、空にすることができます。
バケットのタグを設定する
次のサンプルコードは、examplebucket という名前のバケットのタグを設定する方法の例を示しています。
# -*- coding: utf-8 -*-
import oss2
from oss2.credentials import EnvironmentVariableCredentialsProvider
from oss2.models import Tagging, TaggingRule
# 環境変数からアクセス認証情報を取得します。サンプルコードを実行する前に、環境変数 OSS_ACCESS_KEY_ID と OSS_ACCESS_KEY_SECRET を設定していることを確認してください。
auth = oss2.ProviderAuthV4(EnvironmentVariableCredentialsProvider())
# バケットが配置されているリージョンのエンドポイントを指定します。たとえば、バケットが中国 (杭州) リージョンにある場合は、エンドポイントを https://oss-cn-hangzhou.aliyuncs.com に設定します。
endpoint = "https://oss-cn-hangzhou.aliyuncs.com"
# エンドポイントにマッピングされるリージョンの ID を指定します。例: cn-hangzhou。署名アルゴリズム V4 を使用する場合は、このパラメーターが必要です。
region = "cn-hangzhou"
# バケットの名前を指定します。
bucket = oss2.Bucket(auth, endpoint, "yourBucketName", region=region)
# バケットのタグ付けルールを作成します。
rule = TaggingRule()
rule.add('key1', 'value1')
rule.add('key2', 'value2')
# バケットのタグを作成します。
tagging = Tagging(rule)
# バケットのタグを設定します。
result = bucket.put_bucket_tagging(tagging)
# 返された HTTP ステータスコードを表示します。
print('http status:', result.status)バケットのタグをクエリする
次のサンプルコードは、examplebucket という名前のバケットのタグをクエリする方法の例を示しています。
# -*- coding: utf-8 -*-
import oss2
from oss2.credentials import EnvironmentVariableCredentialsProvider
# 環境変数からアクセス認証情報を取得します。サンプルコードを実行する前に、環境変数 OSS_ACCESS_KEY_ID と OSS_ACCESS_KEY_SECRET を設定していることを確認してください。
auth = oss2.ProviderAuthV4(EnvironmentVariableCredentialsProvider())
# バケットが配置されているリージョンのエンドポイントを指定します。たとえば、バケットが中国 (杭州) リージョンにある場合は、エンドポイントを https://oss-cn-hangzhou.aliyuncs.com に設定します。
endpoint = "https://oss-cn-hangzhou.aliyuncs.com"
# エンドポイントにマッピングされるリージョンの ID を指定します。例: cn-hangzhou。署名アルゴリズム V4 を使用する場合は、このパラメーターが必要です。
region = "cn-hangzhou"
# バケットの名前を指定します。
bucket = oss2.Bucket(auth, endpoint, "yourBucketName", region=region)
# バケットのタグをクエリします。
result = bucket.get_bucket_tagging()
# タグ付けルールを表示します。
tag_rule = result.tag_set.tagging_rule
print('tag rule:', tag_rule)特定のタグを持つバケットをリストする
次のサンプルコードは、特定のタグを持つバケットをリストする方法の例を示しています。
# -*- coding: utf-8 -*-
import oss2
from oss2.credentials import EnvironmentVariableCredentialsProvider
# サーバーオブジェクトを作成します。
# 環境変数からアクセス認証情報を取得します。サンプルコードを実行する前に、環境変数 OSS_ACCESS_KEY_ID と OSS_ACCESS_KEY_SECRET を設定していることを確認してください。
auth = oss2.ProviderAuthV4(EnvironmentVariableCredentialsProvider())
# バケットが配置されているリージョンのエンドポイントを指定します。たとえば、バケットが中国 (杭州) リージョンにある場合は、エンドポイントを https://oss-cn-hangzhou.aliyuncs.com に設定します。
endpoint = "https://oss-cn-hangzhou.aliyuncs.com"
# エンドポイントにマッピングされるリージョンの ID を指定します。例: cn-hangzhou。署名アルゴリズム V4 を使用する場合は、このパラメーターが必要です。
region = "cn-hangzhou"
service = oss2.Service(auth, endpoint, region=region)
# ListBuckets 操作の params パラメーターに tag-key フィールドと tag-value フィールドを追加します。
params = {}
params['tag-key'] = 'yourTagging_key'
params['tag-value'] = 'yourTagging_value'
# 特定のタグを持つバケットをリストします。
result = service.list_buckets(params=params)
# リスト操作の結果を表示します。
for bucket in result.buckets:
print('result bucket_name:', bucket.name)バケットのタグを削除する
バケットのすべてのタグを削除する
次のサンプルコードは、examplebucket という名前のバケットのすべてのタグを削除する方法の例を示しています。
# -*- coding: utf-8 -*-
import oss2
from oss2.credentials import EnvironmentVariableCredentialsProvider
# 環境変数からアクセス認証情報を取得します。サンプルコードを実行する前に、環境変数 OSS_ACCESS_KEY_ID と OSS_ACCESS_KEY_SECRET を設定していることを確認してください。
auth = oss2.ProviderAuthV4(EnvironmentVariableCredentialsProvider())
# バケットが配置されているリージョンのエンドポイントを指定します。たとえば、バケットが中国 (杭州) リージョンにある場合は、エンドポイントを https://oss-cn-hangzhou.aliyuncs.com に設定します。
endpoint = "https://oss-cn-hangzhou.aliyuncs.com"
# エンドポイントにマッピングされるリージョンの ID を指定します。例: cn-hangzhou。署名アルゴリズム V4 を使用する場合は、このパラメーターが必要です。
region = "cn-hangzhou"
# バケットの名前を指定します。
bucket = oss2.Bucket(auth, endpoint, "yourBucketName", region=region)
# バケットのタグを削除します。
result = bucket.delete_bucket_tagging()
# 返された HTTP ステータスコードを表示します。
print('http status:', result.status)バケットの特定のタグを削除する
次のサンプルコードは、examplebucket という名前のバケットの特定のタグを削除する方法の例を示しています。
# -*- coding: utf-8 -*-
import oss2
from oss2.credentials import EnvironmentVariableCredentialsProvider
# 環境変数からアクセス認証情報を取得します。サンプルコードを実行する前に、環境変数 OSS_ACCESS_KEY_ID と OSS_ACCESS_KEY_SECRET を設定していることを確認してください。
auth = oss2.ProviderAuth(EnvironmentVariableCredentialsProvider())
# バケットが配置されているリージョンのエンドポイントを指定します。たとえば、バケットが中国 (杭州) リージョンにある場合は、エンドポイントを https://oss-cn-hangzhou.aliyuncs.com に設定します。
# バケットの名前を指定します。例: examplebucket。
bucket = oss2.Bucket(auth, 'https://oss-cn-hangzhou.aliyuncs.com', 'examplebucket')
params = dict()
# キーが key1 のタグを削除します。
params['tagging'] = "key1"
# バケットの指定されたタグを削除します。
result = bucket.delete_bucket_tagging(params=params)
# 返された HTTP ステータスコードを表示します。
print('http status:', result.status)関連情報
バケットのタグを管理するための完全なサンプルコードについては、GitHub をご覧ください。
バケットのタグを設定するために呼び出すことができる API 操作の詳細については、「PutBucketTags」をご参照ください。
バケットのタグをクエリするために呼び出すことができる API 操作の詳細については、「GetBucketTags」をご参照ください。
バケットのタグを削除するために呼び出すことができる API 操作の詳細については、「DeleteBucketTags」をご参照ください。