すべてのプロダクト
Search
ドキュメントセンター

Object Storage Service:バケットのタグ付け (Python SDK V2)

最終更新日:Nov 09, 2025

このトピックでは、バケットにタグを設定する方法について説明します。

注意事項

  • このトピックのサンプルコードでは、中国 (杭州) リージョンのリージョン 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()