全部產品
Search
文件中心

Object Storage Service:儲存空間標籤(Python SDK V2)

更新時間:Jul 31, 2025

本文介紹如何對儲存空間(Bucket)設定標籤。

注意事項

  • 本文範例程式碼以華東1(杭州)的地區IDcn-hangzhou為例,預設使用外網Endpoint,如果您希望通過與OSS同地區的其他阿里雲產品訪問OSS,請使用內網Endpoint。關於OSS支援的Region與Endpoint的對應關係,請參見OSS地區和訪問網域名稱

  • 本文以從環境變數讀取存取憑證為例。如何配置訪問憑證,請參見配置訪問憑證

範例程式碼

設定Bucket標籤

您可以使用以下代碼為bucket設定標籤。

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)

# 添加命令列參數 --endpoint,表示其他服務訪問 OSS 時使用的網域名稱,可選項
parser.add_argument('--endpoint', help='The domain names that other services can use to access OSS')

def main():
    # 解析命令列參數
    args = parser.parse_args()

    # 從環境變數中載入憑證資訊(AccessKeyId 和 AccessKeySecret)
    credentials_provider = oss.credentials.EnvironmentVariableCredentialsProvider()

    # 載入 SDK 的預設配置
    cfg = oss.config.load_default()

    # 設定憑證提供者
    cfg.credentials_provider = credentials_provider

    # 設定儲存空間所在的地區
    cfg.region = args.region

    # 如果使用者提供了自訂的 endpoint,則設定到配置中
    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(  # 第二個標籤
                            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()

查看Bucket標籤

您可以使用以下代碼查看bucket的標籤資訊。

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)

# 添加命令列參數 --endpoint,表示其他服務訪問 OSS 時使用的網域名稱,可選項
parser.add_argument('--endpoint', help='The domain names that other services can use to access OSS')

def main():
    # 解析命令列參數
    args = parser.parse_args()

    # 從環境變數中載入憑證資訊(AccessKeyId 和 AccessKeySecret)
    credentials_provider = oss.credentials.EnvironmentVariableCredentialsProvider()

    # 載入 SDK 的預設配置
    cfg = oss.config.load_default()

    # 設定憑證提供者
    cfg.credentials_provider = credentials_provider

    # 設定儲存空間所在的地區
    cfg.region = args.region

    # 如果使用者提供了自訂的 endpoint,則設定到配置中
    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()

刪除Bucket標籤

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)

# 添加命令列參數 --endpoint,表示其他服務訪問 OSS 時使用的網域名稱,可選項
parser.add_argument('--endpoint', help='The domain names that other services can use to access OSS')

def main():
    # 解析命令列參數
    args = parser.parse_args()

    # 從環境變數中載入憑證資訊(AccessKeyId 和 AccessKeySecret)
    credentials_provider = oss.credentials.EnvironmentVariableCredentialsProvider()

    # 載入 SDK 的預設配置
    cfg = oss.config.load_default()

    # 設定憑證提供者
    cfg.credentials_provider = credentials_provider

    # 設定儲存空間所在的地區
    cfg.region = args.region

    # 如果使用者提供了自訂的 endpoint,則設定到配置中
    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()