全部產品
Search
文件中心

Object Storage Service:set-props(設定對象屬性)

更新時間:Aug 04, 2026

set-props命令用於設定對象屬性,支援設定存取權限、儲存類型、中繼資料和標籤。

注意事項

set-props命令會根據修改的對象屬性類型調用不同的API介面,請確保擁有相應的許可權(如調用PutObjectAcl 介面需具備 oss:PutObjectAcl 操作許可權),具體如下:

  1. 僅修改對象許可權 (ACL):調用 PutObjectAcl 介面。

  2. 僅修改對象標籤 (Tagging):調用 PutObjectTagging 介面。如果標籤修改指令涉及基於現有標籤更新(如增量添加),系統將先調用 GetObjectTagging介面 擷取原始標籤。

  3. 修改Object Storage Service類型或中繼資料:此類操作涉及對象重寫,調用 CopyObject 介面或使用分區拷貝流程(InitiateMultipartUpload -> UploadPartCopy -> CompleteMultipartUpload)。

  4. 同時修改多個屬性:基於最優方式選擇合適的介面組合。例如:

    • 同時修改對象許可權和標籤: 調用 PutObjectAcl 和 PutObjectTagging。

    • 同時修改對象許可權和儲存類型: 直接調用 CopyObject 或分區拷貝介面(利用拷貝操作InitiateMultipartUpload -> UploadPartCopy -> CompleteMultipartUpload同時更新許可權與類型)。

說明

修改對象的儲存類型會產生 PUT 類型請求費用:

  • 對象大小不超過 --bigfile-threshold 指定的閾值時,ossutil 調用 CopyObject。該請求按來源物件的儲存類型計費。

  • 對象大小超過該閾值時,ossutil 使用分區拷貝。每個分區調用一次 UploadPartCopy,該請求按目標對象的儲存類型計費。

  • 批量將對象轉換為深度冷Archive Storage時,PUT 請求費用可能較高。可以提高 --bigfile-threshold 或 --part-size 以減少 UploadPartCopy 請求數。修改儲存類型時,CopyObject 僅支援不超過 1 GB 的對象。

具體計費規則,請參見請求費用。有關深度冷Archive Storage的計費說明和使用建議,請參見深度冷Archive Storage使用最佳實務。

命令格式

ossutil set-props oss://bucket[/prefix] [flags]

參數

類型

說明

--acl

string

對象的存取權限。取值:

  • private:私人。

  • public-read:公用讀取。

  • public-read-write:公用讀寫。

  • default:繼承Bucket。

--bigfile-threshold

SizeSuffix

大檔案分區上傳、下載或拷貝的閾值。對象大小超過該閾值時使用分區拷貝。預設值為 100 MiB。支援 B、K、M、G、T 和 P 單位尾碼。

--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。

重要

僅在同時指定 -f、--update、--size-only 或 --ignore-existing 中任意一個參數時生效。

--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

中繼資料的修改指令。取值:

  • replace:只保留命令列選項裡的中繼資料。

  • update:取命令列和對象中中繼資料的並集。

  • purge:清除所有的中繼資料。

  • delete:刪除命令列選項裡的中繼資料,其它的保留。

--metadata-exclude

stringArray

對象中繼資料的排除規則。

--metadata-filter

stringArray

對象中繼資料過濾規則。

--metadata-filter-from

stringArray

從規則檔案讀取對象中繼資料過濾規則。

--metadata-include

stringArray

對象中繼資料的包含規則。

--min-age

Duration

僅設定修改時間在指定時間間隔前的檔案,預設單位是秒,可以使用單位尾碼形式。例如 1h,表示1小時。

說明

--min-age 1h 表示僅設定修改時間在1小時前或更早的檔案。

--max-age

Duration

僅設定修改時間在指定時間間隔內的檔案,預設單位是秒,可以使用單位尾碼形式。例如 1h,表示1小時。

說明

--max-age 1h 表示僅設定修改時間在1小時內的檔案。

--min-mtime

Time

僅設定修改時間在指定時間之後的檔案,時間格式:UTC時間。例如2006-01-02T15:04:05。

說明

--min-mtime "2006-01-02T15:04:05" 表示僅設定在 2006 年 1 月 2 日 15: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

分區大小。預設情況下,ossutil 根據對象大小自動計算分區大小。增大分區可以減少 UploadPartCopy 請求數。取值範圍為 100 KiB~5 GiB。

-r, --recursive

/

遞迴進行操作。當指定該選項時,命令會對儲存空間下所有合格對象進行操作,否則只對路徑指定的對象進行操作。

--request-payer

string

請求的支付方式,如果為要求者付費模式,請設定該值。取值:requester。

--start-after

string

按字母排序,返回設定值之後的對象,不包含設定值。

--storage-class

string

對象的儲存類型。取值:

  • Standard:標準儲存。

  • IA:低頻訪問。

  • Archive:Archive Storage。

  • ColdArchive:冷Archive Storage。

  • DeepColdArchive:深度冷Archive Storage。

--tagging

strings

指定對象的標籤,使用key=value格式。

例如:--tagging tag1=value1,tag2=value2。

--tagging-directive

string

標籤的修改指令。取值:

  • replace:只保留命令列選項裡的標籤。

  • update:取命令列和對象中標籤的並集。

  • purge:清除所有的標籤。

  • delete:刪除命令列選項裡的標籤,其它的保留。

--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
  • 批量將對象轉換為深度冷Archive Storage,並預估 PUT 類型請求費用。

    對於不超過 1 GB 的對象,可以提高分區閾值以使用 CopyObject。例如,將閾值設定為 1 GB:

    ossutil set-props oss://examplebucket/exampledir/ --storage-class DeepColdArchive --bigfile-threshold 1G -r

    對於超過 1 GB 的對象,必須使用分區拷貝。增大分區可以減少 UploadPartCopy 請求數。例如,將分區大小設定為 1 GiB:

    ossutil set-props oss://examplebucket/exampledir/ --storage-class DeepColdArchive --part-size 1G -r

    按以下公式估算 UploadPartCopy 請求數:

    每個對象的分區數 = ceil(對象大小 / 分區大小)
    UploadPartCopy 請求數 = 對象數量 × 每個對象的分區數

    例如,批量轉換 1000 個大小為 10 GiB 的對象,設定 --part-size 1G 後,每個對象產生 10 次 UploadPartCopy 請求,共產生 10000 次。UploadPartCopy 按目標對象的儲存類型計費,因此應根據深度冷歸檔 PUT 請求的計費規則估算這部分費用。分區拷貝還會調用 InitiateMultipartUpload 和 CompleteMultipartUpload。對象列舉和重試也可能產生請求費用。

  • 對*.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/key2
    ossutil 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