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