このトピックでは、バケットにタグを設定する方法について説明します。
注意事項
このトピックのサンプルコードでは、中国 (杭州) リージョンのリージョン ID
cn-hangzhouを使用します。デフォルトでは、パブリックエンドポイントが使用されます。同じリージョン内の他の Alibaba Cloud プロダクトから OSS にアクセスする場合は、内部エンドポイントを使用してください。OSS リージョンとエンドポイント間のマッピングの詳細については、「リージョンとエンドポイント」をご参照ください。このトピックのサンプルコードは、環境変数からアクセス資格情報を読み取ります。アクセス資格情報の設定方法の詳細については、「アクセス資格情報の設定」をご参照ください。
サンプルコード
バケットタグの設定
次のコードを使用して、バケットにタグを設定できます。
import argparse
import alibabacloud_oss_v2 as oss
# コマンドラインからパラメーターを解析するためのコマンドラインパラメーターパーサーを作成します。
parser = argparse.ArgumentParser(description="put bucket tags sample")
# バケットが配置されているリージョンを指定する --region コマンドライン引数を追加します。これは必須の引数です。
parser.add_argument('--region', help='The region in which the bucket is located.', required=True)
# バケットの名前を指定する --bucket コマンドライン引数を追加します。これは必須の引数です。
parser.add_argument('--bucket', help='The name of the bucket.', required=True)
# 他のサービスが OSS にアクセスするために使用するドメイン名を指定する --endpoint コマンドライン引数を追加します。これはオプションの引数です。
parser.add_argument('--endpoint', help='The domain names that other services can use to access OSS')
def main():
# コマンドライン引数を解析します。
args = parser.parse_args()
# 環境変数から認証情報 (AccessKey ID と AccessKey Secret) を読み込みます。
credentials_provider = oss.credentials.EnvironmentVariableCredentialsProvider()
# SDK のデフォルト設定を読み込みます。
cfg = oss.config.load_default()
# 認証情報プロバイダーを設定します。
cfg.credentials_provider = credentials_provider
# バケットが配置されているリージョンを設定します。
cfg.region = args.region
# ユーザーによってカスタムエンドポイントが提供された場合は、設定でそれを設定します。
if args.endpoint is not None:
cfg.endpoint = args.endpoint
# 設定オブジェクトを使用して OSS クライアントを初期化します。
client = oss.Client(cfg)
# put_bucket_tags メソッドを呼び出して、バケットにタグを設定します。
result = client.put_bucket_tags(
oss.PutBucketTagsRequest(
bucket=args.bucket, # 宛先バケットの名前を指定します。
tagging=oss.Tagging( # タグセットを構築します。
tag_set=oss.TagSet( # タグセットには複数のタグが含まれます。
tags=[ # タグのリストを定義します。
oss.Tag( # 最初のタグ。
key='test_key', # タグキー。
value='test_value', # タグの値。
),
oss.Tag( # 2 番目のタグ。
key='test_key2', # タグキー。
value='test_value2', # タグの値。
),
],
),
),
)
)
# 操作結果のステータスコードとリクエスト ID を出力します。
print(f'status code: {result.status_code}, ' # リクエストが成功したかどうかを示す HTTP ステータスコード。
f'request id: {result.request_id}') # ログの追跡とデバッグに使用されるリクエスト ID。
if __name__ == "__main__":
# プログラムのエントリポイント。main 関数を呼び出してロジックを実行します。
main()
バケットタグのクエリ
次のコードを使用して、バケットのタグをクエリできます。
import argparse
import alibabacloud_oss_v2 as oss
# コマンドラインからパラメーターを解析するためのコマンドラインパラメーターパーサーを作成します。
parser = argparse.ArgumentParser(description="get bucket tags sample")
# バケットが配置されているリージョンを指定する --region コマンドライン引数を追加します。これは必須の引数です。
parser.add_argument('--region', help='The region in which the bucket is located.', required=True)
# バケットの名前を指定する --bucket コマンドライン引数を追加します。これは必須の引数です。
parser.add_argument('--bucket', help='The name of the bucket.', required=True)
# 他のサービスが OSS にアクセスするために使用するドメイン名を指定する --endpoint コマンドライン引数を追加します。これはオプションの引数です。
parser.add_argument('--endpoint', help='The domain names that other services can use to access OSS')
def main():
# コマンドライン引数を解析します。
args = parser.parse_args()
# 環境変数から認証情報 (AccessKey ID と AccessKey Secret) を読み込みます。
credentials_provider = oss.credentials.EnvironmentVariableCredentialsProvider()
# SDK のデフォルト設定を読み込みます。
cfg = oss.config.load_default()
# 認証情報プロバイダーを設定します。
cfg.credentials_provider = credentials_provider
# バケットが配置されているリージョンを設定します。
cfg.region = args.region
# ユーザーによってカスタムエンドポイントが提供された場合は、設定でそれを設定します。
if args.endpoint is not None:
cfg.endpoint = args.endpoint
# 設定オブジェクトを使用して OSS クライアントを初期化します。
client = oss.Client(cfg)
# get_bucket_tags メソッドを呼び出して、バケットのタグ情報を取得します。
result = client.get_bucket_tags(
oss.GetBucketTagsRequest(
bucket=args.bucket, # 宛先バケットの名前を指定します。
)
)
# 操作結果のステータスコード、リクエスト ID、およびタグ情報を出力します。
print(f'status code: {result.status_code}, ' # リクエストが成功したかどうかを示す HTTP ステータスコード。
f'request id: {result.request_id}, ' # ログの追跡とデバッグに使用されるリクエスト ID。
f'tagging: {result.tagging}') # タグセット情報。
# 返されたタグセットにタグが含まれている場合は、各タグのキーと値のペアを出力します。
if result.tagging.tag_set.tags: # タグが存在するかどうかを確認します。
for r in result.tagging.tag_set.tags: # タグセットを走査します。
print(f'result: key: {r.key}, value: {r.value}') # 各タグのキーと値を出力します。
if __name__ == "__main__":
# プログラムのエントリポイント。main 関数を呼び出してロジックを実行します。
main()
バケットタグの削除
import argparse
import alibabacloud_oss_v2 as oss
# コマンドラインからパラメーターを解析するためのコマンドラインパラメーターパーサーを作成します。
parser = argparse.ArgumentParser(description="delete bucket tags sample")
# バケットが配置されているリージョンを指定する --region コマンドライン引数を追加します。これは必須の引数です。
parser.add_argument('--region', help='The region in which the bucket is located.', required=True)
# バケットの名前を指定する --bucket コマンドライン引数を追加します。これは必須の引数です。
parser.add_argument('--bucket', help='The name of the bucket.', required=True)
# 他のサービスが OSS にアクセスするために使用するドメイン名を指定する --endpoint コマンドライン引数を追加します。これはオプションの引数です。
parser.add_argument('--endpoint', help='The domain names that other services can use to access OSS')
def main():
# コマンドライン引数を解析します。
args = parser.parse_args()
# 環境変数から認証情報 (AccessKey ID と AccessKey Secret) を読み込みます。
credentials_provider = oss.credentials.EnvironmentVariableCredentialsProvider()
# SDK のデフォルト設定を読み込みます。
cfg = oss.config.load_default()
# 認証情報プロバイダーを設定します。
cfg.credentials_provider = credentials_provider
# バケットが配置されているリージョンを設定します。
cfg.region = args.region
# ユーザーによってカスタムエンドポイントが提供された場合は、設定でそれを設定します。
if args.endpoint is not None:
cfg.endpoint = args.endpoint
# 設定オブジェクトを使用して OSS クライアントを初期化します。
client = oss.Client(cfg)
# delete_bucket_tags メソッドを呼び出して、バケットのすべてのタグを削除します。
result = client.delete_bucket_tags(
oss.DeleteBucketTagsRequest(
bucket=args.bucket, # 宛先バケットの名前を指定します。
)
)
# 操作結果のステータスコードとリクエスト ID を出力します。
print(f'status code: {result.status_code}, ' # リクエストが成功したかどうかを示す HTTP ステータスコード。
f'request id: {result.request_id}') # ログの追跡とデバッグに使用されるリクエスト ID。
if __name__ == "__main__":
# プログラムのエントリポイント。main 関数を呼び出してロジックを実行します。
main()