本文介紹如何使用Python SDK V2擷取Object的標籤資訊。
注意事項
本文範例程式碼以華東1(杭州)的地區ID
cn-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()
相關文檔
關於擷取對象標籤的完整範例程式碼,請參見get_object_tagging.py。