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時,需滿足以下條件:
|
value | 設定Value時,需滿足以下條件:
|
--method | 請求類型。取值如下:
|
--encoding-type | 對 |
-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****
關於此命令的其他通用選項的更多資訊,請參見通用選項。