全部產品
Search
文件中心

Object Storage Service:Python擷取對象標籤

更新時間:Jul 31, 2025

本文介紹如何使用Python SDK V2擷取Object的標籤資訊。

注意事項

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

  • 對象標籤使用一組索引值對(Key-Value)來標記對象。關於對象標籤的更多資訊,請參見開發指南對象標籤

  • 關於擷取對象標籤的更多資訊,請參見GetObjectTagging

  • 要擷取對象標籤,您必須具有oss:GetObjectTagging許可權。具體操作,請參見為RAM使用者授予自訂的權限原則

方法定義

get_object_tagging(request: GetObjectTaggingRequest, **kwargs) → GetObjectTaggingResult

請求參數列表

參數名

類型

說明

request

GetObjectTaggingRequest

佈建要求參數,具體請參見GetObjectTaggingRequest

傳回值列表

類型

說明

GetObjectTaggingResult

傳回值,具體請參見GetObjectTaggingResult

關於擷取對象標籤方法的完整定義,請參見get_object_tagging

範例程式碼

您可以使用以下代碼擷取儲存空間中的指定檔案的標籤資訊。

import argparse
import alibabacloud_oss_v2 as oss

# 建立一個命令列參數解析器,用於處理使用者通過命令列傳入的參數。
parser = argparse.ArgumentParser(description="get object tagging sample")

# 添加必需和可選命令列參數
# --region: 指定OSS儲存空間所在的地區
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')
# --key: 指定對象(檔案)在OSS中的鍵名
parser.add_argument('--key', help='The name of the object.', required=True)

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

    # 從環境變數中載入OSS所需的認證資訊
    credentials_provider = oss.credentials.EnvironmentVariableCredentialsProvider()

    # 使用SDK提供的預設配置建立設定物件
    cfg = oss.config.load_default()

    # 設定認證資訊提供者為之前建立的對象
    cfg.credentials_provider = credentials_provider

    # 根據使用者輸入設定OSS用戶端使用的地區
    cfg.region = args.region

    # 如果使用者提供了自訂的endpoint,則更新配置
    if args.endpoint is not None:
        cfg.endpoint = args.endpoint

    # 使用上述配置建立OSS用戶端執行個體
    client = oss.Client(cfg)

    # 擷取指定對象的標籤資訊
    result = client.get_object_tagging(oss.GetObjectTaggingRequest(
        bucket=args.bucket,
        key=args.key,
    ))

    # 列印擷取標籤資訊的結果
    print(f'status code: {result.status_code},'
          f' request id: {result.request_id},'
          f' version id: {result.version_id},'
    )

    # 如果存在標籤,則遍曆並列印每個標籤的索引值對
    if result.tag_set.tags:
        for o in result.tag_set.tags:
            print(f'tags key: {o.key}, tags value: {o.value}')

# 當此指令碼被直接運行時,調用main函數
if __name__ == "__main__":
    main()

相關文檔