バケットタグを使用すると、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という名前のバケットのタグを設定する方法の例を示しています。
# -*- coding: utf-8 -*-
import oss2
from oss2.credentials import EnvironmentVariableCredentialsProvider
from oss2.models import Tagging, TaggingRule
# Obtain access credentials from the environment variables. Before you run the sample code, make sure that you have configured environment variables OSS_ACCESS_KEY_ID and OSS_ACCESS_KEY_SECRET.
auth = oss2.ProviderAuthV4(EnvironmentVariableCredentialsProvider())
# Specify the endpoint of the region in which the bucket is located. For example, if the bucket is located in the China (Hangzhou) region, set the endpoint to https://oss-cn-hangzhou.aliyuncs.com.
endpoint = "https://oss-cn-hangzhou.aliyuncs.com"
# Specify the ID of the region that maps to the endpoint. Example: cn-hangzhou. This parameter is required if you use the signature algorithm V4.
region = "cn-hangzhou"
# Specify the name of your bucket.
bucket = oss2.Bucket(auth, endpoint, "yourBucketName", region=region)
# Create tagging rules for the bucket.
rule = TaggingRule()
rule.add('key1', 'value1')
rule.add('key2', 'value2')
# Create tags for the bucket.
tagging = Tagging(rule)
# Configure tags for the bucket.
result = bucket.put_bucket_tagging(tagging)
# Display the returned HTTP status code.
print('http status:', result.status)
バケットのタグを照会する
次のサンプルコードは、examplebucketという名前のバケットのタグを照会する方法の例を示しています。
# -*- coding: utf-8 -*-
import oss2
from oss2.credentials import EnvironmentVariableCredentialsProvider
# Obtain access credentials from the environment variables. Before you run the sample code, make sure that you have configured environment variables OSS_ACCESS_KEY_ID and OSS_ACCESS_KEY_SECRET.
auth = oss2.ProviderAuthV4(EnvironmentVariableCredentialsProvider())
# Specify the endpoint of the region in which the bucket is located. For example, if the bucket is located in the China (Hangzhou) region, set the endpoint to https://oss-cn-hangzhou.aliyuncs.com.
endpoint = "https://oss-cn-hangzhou.aliyuncs.com"
# Specify the ID of the region that maps to the endpoint. Example: cn-hangzhou. This parameter is required if you use the signature algorithm V4.
region = "cn-hangzhou"
# Specify the name of your bucket.
bucket = oss2.Bucket(auth, endpoint, "yourBucketName", region=region)
# Query the tags of the bucket.
result = bucket.get_bucket_tagging()
# Display the tagging rule.
tag_rule = result.tag_set.tagging_rule
print('tag rule:', tag_rule)
特定のタグを持つバケットの一覧表示
次のサンプルコードは、特定のタグを持つバケットを一覧表示する方法の例を示しています。
# -*- coding: utf-8 -*-
import oss2
from oss2.credentials import EnvironmentVariableCredentialsProvider
# Create a server object.
# Obtain access credentials from the environment variables. Before you run the sample code, make sure that you have configured environment variables OSS_ACCESS_KEY_ID and OSS_ACCESS_KEY_SECRET.
auth = oss2.ProviderAuthV4(EnvironmentVariableCredentialsProvider())
# Specify the endpoint of the region in which the bucket is located. For example, if the bucket is located in the China (Hangzhou) region, set the endpoint to https://oss-cn-hangzhou.aliyuncs.com.
endpoint = "https://oss-cn-hangzhou.aliyuncs.com"
# Specify the ID of the region that maps to the endpoint. Example: cn-hangzhou. This parameter is required if you use the signature algorithm V4.
region = "cn-hangzhou"
service = oss2.Service(auth, endpoint, region=region)
# Add the tag-key and tag-value fields to the params parameter of the ListBuckets operation.
params = {}
params['tag-key'] = 'yourTagging_key'
params['tag-value'] = 'yourTagging_value'
# List buckets that have specific tags.
result = service.list_buckets(params=params)
# Display the results of the list operation.
for bucket in result.buckets:
print('result bucket_name:', bucket.name)
バケットのタグを削除する
バケットのタグをすべて削除する
次のサンプルコードは、examplebucketという名前のバケットのすべてのタグを削除する方法の例を示しています。
# -*- coding: utf-8 -*-
import oss2
from oss2.credentials import EnvironmentVariableCredentialsProvider
# Obtain access credentials from the environment variables. Before you run the sample code, make sure that you have configured environment variables OSS_ACCESS_KEY_ID and OSS_ACCESS_KEY_SECRET.
auth = oss2.ProviderAuthV4(EnvironmentVariableCredentialsProvider())
# Specify the endpoint of the region in which the bucket is located. For example, if the bucket is located in the China (Hangzhou) region, set the endpoint to https://oss-cn-hangzhou.aliyuncs.com.
endpoint = "https://oss-cn-hangzhou.aliyuncs.com"
# Specify the ID of the region that maps to the endpoint. Example: cn-hangzhou. This parameter is required if you use the signature algorithm V4.
region = "cn-hangzhou"
# Specify the name of your bucket.
bucket = oss2.Bucket(auth, endpoint, "yourBucketName", region=region)
# Delete tags of the bucket.
result = bucket.delete_bucket_tagging()
# Display the returned HTTP status code.
print('http status:', result.status)
バケットの特定のタグを削除する
次のサンプルコードは、examplebucketという名前のバケットの特定のタグを削除する方法の例を示しています。
# -*- coding: utf-8 -*-
import oss2
from oss2.credentials import EnvironmentVariableCredentialsProvider
# Obtain access credentials from the environment variables. Before you run the sample code, make sure that you have configured environment variables OSS_ACCESS_KEY_ID and OSS_ACCESS_KEY_SECRET.
auth = oss2.ProviderAuth(EnvironmentVariableCredentialsProvider())
# Specify the endpoint of the region in which the bucket is located. For example, if the bucket is located in the China (Hangzhou) region, set the endpoint to https://oss-cn-hangzhou.aliyuncs.com.
# Specify the name of the bucket. Example: examplebucket.
bucket = oss2.Bucket(auth, 'https://oss-cn-hangzhou.aliyuncs.com', 'examplebucket')
params = dict()
# Delete the tag whose key is key1.
params['tagging'] = "key1"
# Delete the specified tag of the bucket.
result = bucket.delete_bucket_tagging(params=params)
# Display the returned HTTP status code.
print('http status:', result.status)
関連ドキュメント
バケットのタグを管理するための完全なサンプルコードについては、『GitHub』をご参照ください。
バケットのタグを設定するために呼び出すことができるAPI操作の詳細については、「PutBucketTags」をご参照ください。
バケットのタグを照会するために呼び出すことができるAPI操作の詳細については、「GetBucketTags」をご参照ください。
バケットのタグを削除するために呼び出すことができるAPI操作の詳細については、「DeleteBucketTags」をご参照ください。