全部產品
Search
文件中心

Object Storage Service:object-tagging(對象標籤)

更新時間:Jul 31, 2024

OSS支援以標籤的方式對儲存的對象(Object)進行分類,方便您管理擁有相同標籤的Object,例如通過生命週期規則為相同標籤的Object指定到期天數或轉換其儲存類型。object-tagging命令用於添加、修改、擷取和刪除對象標籤。

注意事項

  • 要添加或修改Object標籤,您必須具有oss:PutObjectTagging許可權;要擷取Object標籤資訊,您必須具有oss:GetObjectTagging許可權;要刪除Object標籤資訊,您必須具有oss:DeleteObjectTagging許可權。具體操作,請參見為RAM使用者授權自訂的權限原則

  • 從ossutil 1.6.16版本開始,命令列中Binary名稱支援直接使用ossutil,您無需根據系統重新整理Binary名稱。如果您的ossutil版本低於1.6.16,則需要根據系統重新整理Binary名稱。更多資訊,請參見命令列工具ossutil命令參考

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

命令格式

ossutil object-tagging oss://bucketname[/prefix][key#value]
--method <value>
[--encoding-type <value>]
[-r,--recursive]
[--payer <value>]
[--version-id <value>] 

參數及選項說明如下:

配置項

說明

bucketname

Bucket名稱。

prefix

Bucket下的資源,例如目錄、檔案等。

key

對象標籤使用一組索引值對(Key-Value)標記對象。單個檔案可設定最多10個標籤,Key不可重複。設定Key時,需滿足以下條件:

  • 每個Key長度不超過128字元,且區分大小寫。

  • Key的合法字元集包括大小寫字母、數字、空格和以下符號:

    +=._:/

value

設定Value時,需滿足以下條件:

  • 每個Value長度不超過256字元,且區分大小寫。

  • Value的合法字元集包括大小寫字母、數字、空格和以下符號:

    +=._:/

--method

請求類型。取值如下:

  • put:添加或修改對象標籤。

  • get:擷取對象標籤。

  • delete:刪除對象標籤。

--encoding-type

oss://bucket_name之後的prefix進行編碼,取值為url。如果不指定該選項,則表示prefix未經過編碼。

-r,--recursive

如果指定該選項時,ossutil將為Bucket下所有符合prefix條件的Object設定標籤。如果不指定該選項,則ossutil只為指定Object設定標籤。

--version-id

Object的指定版本。僅適用於已開啟或暫停版本控制狀態Bucket下的Object。

--payer

請求的支付方式。如果希望訪問指定路徑下的資源產生的流量、請求次數等費用由要求者支付,請將此選項的值設定為requester

添加或修改Object標籤

只有Bucket擁有者以及被授予PutObjectTagging的RAM使用者擁有設定或修改Object標籤的許可權。

添加或修改Object標籤樣本如下:

重要

若Object未設定標籤,執行如下操作將為Object添加指定的標籤;若Object已配置標籤,執行如下操作將覆蓋Object原有標籤。

  • 為目標儲存空間examplebucket下的exampleobject.txt檔案設定key為tagkey,value為tagvalue的標籤資訊。

    ossutil object-tagging --method put oss://examplebucket/exampleobject.txt tagkey#tagvalue
  • 為目標儲存空間examplebucket下的exampleobject.png檔案設定兩組標籤資訊。其中一組標籤資訊為tagkey1#tagvalue1,另一組標籤資訊為tagkey2#tagvalue2。

    ossutil object-tagging --method put oss://examplebucket/exampleobject.txt tagkey1#tagvalue1 tagkey2#tagvalue2
  • 為目標儲存空間examplebucket下與首碼test匹配的多個檔案設定三組標籤資訊,標籤資訊分別為tagkey3#tagvalue3、tagkey4#tagvalue4和tagkey5#tagvalue5。

    ossutil object-tagging --method put oss://examplebucket/test -r tagkey3#tagvalue3 tagkey4#tagvalue4 tagkey5#tagvalue5
  • 為已開啟版本控制的儲存空間examplebucket下的exampleobject.txt的指定版本設定key為tagkey6,value為tagvalue6的標籤資訊。

    ossutil object-tagging --method put oss://examplebucket/exampleobject.txt tagkey6#tagvalue6 --version-id CAEQARiBgID8rumR2hYiIGUyOTAyZGY2MzU5MjQ5ZjlhYzQzZjNlYTAyZDE3****

    關於擷取Object所有版本的具體操作,請參見ls(列舉帳號層級下的資源)

  • 以上樣本操作成功後,返回結果中將包含設定標籤資訊所用時間長度,樣本如下:

    0.106852(s) elapsed

擷取Object標籤資訊

只有Bucket擁有者以及被授予GetObjectTagging的RAM使用者擁有擷取Object標籤資訊的許可權。

擷取Object標籤資訊的樣本如下:

  • 擷取單個Object的標籤資訊

    擷取目標儲存空間examplebucket下exampleobject.txt的標籤資訊。

    ossutil object-tagging --method get oss://examplebucket/exampleobject.txt

    以下輸出結果表明已成功擷取exampleobject.txt的標籤資訊,標籤資訊的key為tagkey,value為tagvalue。

    object index   tag index      tag key   tag value       object
    ---------------------------------------------------------------------------
    1              0              "tagkey"  "tagvalue"      oss://examplebucket/exampleobject.txt
    
    0.068156(s) elapsed
  • 擷取多個Object的標籤資訊

    擷取目標儲存空間examplebucket下與首碼test匹配的檔案的標籤資訊。

    ossutil object-tagging --method get oss://examplebucket/test -r

    以下輸出結果表明已成功擷取與首碼test匹配的所有檔案的標籤資訊,分別為tagkey3#tagvalue3、tagkey4#tagvalue4和tagkey5#tagvalue5。

    object index   tag index      tag key   tag value       object
    ---------------------------------------------------------------------------
    1              0              "tagkey3" "tagvalue3"     oss://examplebucket/test
    1              1              "tagkey4" "tagvalue4"     oss://examplebucket/test
    1              2              "tagkey5" "tagvalue5"     oss://examplebucket/test
    
    0.093040(s) elapsed

刪除Object標籤資訊

只有Bucket擁有者以及被授予DeletetObjectTagging的RAM使用者擁有刪除Object標籤資訊的許可權。

刪除Object標籤資訊的樣本如下:

  • 刪除單個Object的標籤資訊

    刪除目標儲存空間examplebucket下exampleobject.txt的標籤資訊。

    ossutil object-tagging --method delete oss://examplebucket/exampleobject.txt
  • 刪除多個Object的標籤資訊

    刪除目標儲存空間examplebucket下與首碼test匹配的所有檔案的標籤資訊。

    ossutil object-tagging --method delete oss://examplebucket/test -r
  • 以上樣本操作成功後,返回結果中將包含刪除標籤資訊所用時間長度,樣本如下:

    0.148970(s) elapsed

通用選項

當您需要通過命令列工具ossutil切換至另一個地區的Bucket時,可以通過-e選項指定該Bucket所屬的Endpoint。當您需要通過命令列工具ossutil切換至另一個阿里雲帳號下的Bucket時,可以通過-i選項指定該帳號的AccessKey ID,並通過-k選項指定該帳號的AccessKey Secret。

例如您需要為另一個阿里雲帳號下,華東2(上海)地區下目標儲存空間testbucket下的exampletest.png檔案設定key為tagkey7、value為tagvalue7的標籤資訊,命令如下:

ossutil object-tagging --method put oss://testbucket/exampletest.png tagkey7#tagvalue7 -e oss-cn-shanghai.aliyuncs.com -i LTAI4Fw2NbDUCV8zYUzA****  -k 67DLVBkH7EamOjy2W5RVAHUY9H****

關於此命令的其他通用選項的更多資訊,請參見通用選項