set-props命令用於設定對象屬性,支援設定存取權限、儲存類型、中繼資料和標籤。
注意事項
set-props命令會根據修改的對象屬性類型調用不同的API介面,請確保擁有相應的許可權(如調用PutObjectAcl 介面需具備 oss:PutObjectAcl 操作許可權),具體如下:
僅修改對象許可權 (ACL):調用
PutObjectAcl介面。僅修改對象標籤 (Tagging):調用
PutObjectTagging介面。如果標籤修改指令涉及基於現有標籤更新(如增量添加),系統將先調用GetObjectTagging介面 擷取原始標籤。修改Object Storage Service類型或中繼資料:此類操作涉及對象重寫,調用
CopyObject介面或使用分區拷貝流程(InitiateMultipartUpload->UploadPartCopy->CompleteMultipartUpload)。同時修改多個屬性:基於最優方式選擇合適的介面組合。例如:
同時修改對象許可權和標籤: 調用
PutObjectAcl和PutObjectTagging。同時修改對象許可權和儲存類型: 直接調用
CopyObject或分區拷貝介面(利用拷貝操作InitiateMultipartUpload->UploadPartCopy->CompleteMultipartUpload同時更新許可權與類型)。
命令格式
ossutil set-props oss://bucket[/prefix] [flags]參數 | 類型 | 說明 |
--acl | string | 對象的存取權限。取值:
|
--bigfile-threshold | int | 開啟大檔案分區上傳、下載或拷貝的閾值(預設值104857600)。 |
--cache-control | string | 指定該對象被下載時網頁的緩衝行為。 |
--content-disposition | string | 指定對象的展示形式。 |
--content-encoding | string | 聲明對象的編碼方式。 |
--content-type | string | 對象的內容類型。 |
-d, --dirs | / | 返回目前的目錄下的檔案和子目錄,而非遞迴顯示所有子目錄下的所有檔案。 |
--encoding-type | string | 輸入的對象名或檔案名稱的編碼方式。取值:url。 |
--end-with | string | 按字母排序,返回設定值之前的對象,包含設定值。 |
--exclude | stringArray | 路徑或檔案名稱的排除規則。 |
--exclude-from | stringArray | 從規則檔案裡讀取排除規則。 |
--expires | string | 指定緩衝內容的絕對到期時間。 |
--files-from | stringArray | 從檔案中讀取源檔案名稱列表,忽略空行或注釋行。 |
--files-from-raw | stringArray | 從檔案中讀取源檔案名稱列表。 |
--filter | stringArray | 路徑或檔案名稱過濾規則。 |
--filter-from | stringArray | 從規則檔案讀取過濾規則。 |
-f, --force | / | 強制操作,不進行詢問提示。 |
--include | stringArray | 路徑或檔案名稱的包含規則。 |
--include-from | stringArray | 從規則檔案裡讀取包含規則。 |
-j, --job | int | 並發任務數,預設值為 3。 重要 僅在同時指定 |
--list-objects | / | 使用ListObjects介面列舉對象。 |
--max-size | SizeSuffix | 限制傳輸的最大檔案大小,預設是位元組,或單位尾碼形式B|K|M|G|T|P,1K(KiB)=1024B。 |
--metadata | strings | 指定對象的使用者中繼資料,使用key=value格式。 例如:--metadata test=value,test1=value1。 |
--metadata-directive | string | 中繼資料的修改指令。取值:
|
--metadata-exclude | stringArray | 對象中繼資料的排除規則。 |
--metadata-filter | stringArray | 對象中繼資料過濾規則。 |
--metadata-filter-from | stringArray | 從規則檔案讀取對象中繼資料過濾規則。 |
--metadata-include | stringArray | 對象中繼資料的包含規則。 |
--min-age | Duration | 僅設定修改時間在指定時間間隔前的檔案,預設單位是秒,可以使用單位尾碼形式。例如 1h,表示1小時。 說明
|
--max-age | Duration | 僅設定修改時間在指定時間間隔內的檔案,預設單位是秒,可以使用單位尾碼形式。例如 1h,表示1小時。 說明
|
--min-mtime | Time | 僅設定修改時間在指定時間之後的檔案,時間格式:UTC時間。例如2006-01-02T15:04:05。 說明
|
--max-mtime | Time | 僅設定修改時間在指定時間之前的檔案,時間格式:UTC時間,例如 2006-01-02T15:04:05。 |
--min-size | SizeSuffix | 限制傳輸的最小檔案大小,預設是位元組,或單位尾碼形式B|K|M|G|T|P,1K(KiB)=1024B。 |
--no-progress | / | 不顯示進度條。 |
--page-size | int | 批量處理時分頁列舉對象的最大值(預設值1000),取值範圍1~1000。 |
--parallel | int | 單檔案內部操作的並發任務數。 |
--part-size | SizeSuffix | 分區大小,預設情況下根據檔案大小自行計算合適的分區大小值。取值範圍100KiB ~5GiB。 |
-r, --recursive | / | 遞迴進行操作。當指定該選項時,命令會對儲存空間下所有合格對象進行操作,否則只對路徑指定的對象進行操作。 |
--request-payer | string | 請求的支付方式,如果為要求者付費模式,請設定該值。取值:requester。 |
--start-after | string | 按字母排序,返回設定值之後的對象,不包含設定值。 |
--storage-class | string | 對象的儲存類型。取值:
|
--tagging | strings | 指定對象的標籤,使用key=value格式。 例如:--tagging tag1=value1,tag2=value2。 |
--tagging-directive | string | 標籤的修改指令。取值:
|
--version-id | string | 對象的版本標識。 |
--list-format | string | 列表檔案的格式,取值:plain、inventory。 |
--list-manifest-from | string | 從檔案中讀取列表檔案格式的描述資訊,當列表檔案格式為inventory時,需要設定該參數。 |
關於支援的全域命令列選項,請參見支援的全域命令列選項。
使用樣本
設定對象的存取權限為私人。
ossutil set-props oss://examplebucket/exampleobject.txt --acl private設定對象的儲存類型為Archive Storage。
ossutil set-props oss://examplebucket/exampleobject.txt --storage-class Archive對*.txt對象,修改content-type為text/plain。
ossutil set-props oss://bucket/prefix --content-type text/plain --include "*.txt" --metadata-directive update -r設定對象的標籤。
ossutil set-props oss://examplebucket/exampleobject.txt --tagging tag1=value1 --tagging-directive update從列表設定對象的屬性。
說明list列表檔案裡的一行表示一個對象,且採用OSS路徑格式,即oss://{bucket}/{key},如list.txt檔案:
oss://examplebucket/key1 oss://examplebucket/key2ossutil set-props list://list.txt從資訊清單檔設定對象的屬性。
說明執行清單任務後,會在清單結果中產生一個 csv.gz 和 manifest.json 檔案。從資訊清單檔中設定對象需要用到這兩個檔案。
ossutil set-props list://ca8007fc-4123-493e-9a01-dd1511fbac54.csv.gz --list-format inventory --list-manifest-from manifest.json