全部產品
Search
文件中心

Object Storage Service:進階命令

更新時間:Sep 28, 2024

本文為您介紹進階命令相關說明。

命令說明

命令範圍

支援的選項

所有進階命令

  • --encoding-type string:輸入的對象名或檔案名稱的編碼方式,取值:url。

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

支援大量操作的命令

  • --start-after/--end-with (, ] :前開後閉 ,用於設定key的查詢範圍。

  • filter選項:對象/檔案名稱、對象/檔案目錄、對象/檔案大小、對象/檔案時間、對象中繼資料等資訊可設定過濾條件,具體的過濾規則,請參見過濾選項

  • --limited-num:設定查詢介面的返回資料。

  • --recursive/-r:用於遞迴操作,遞迴訪問根目錄下的所有檔案或對象,包括子目錄。

  • --dirs/-d:只訪問根目錄下的檔案或對象,不包括子目錄。

    說明

    對於對象,採用Delimiter方式來類比,需要掃描該首碼下的所有對象,對象數量越多,則越耗時。

  • --force/-f:強制操作,不進行詢問提示。

  • --list-objects:使用ListObjects介面列舉對象。

支援目的過濾規則的命令

  • --update:只對比修改時間,只同步源端新於目的端。

  • --size-only:只對比檔案大小,只同步檔案大小不一樣的資料。

  • --checksum:對比crc64,優先對比檔案大小,當檔案大小一樣時,再對比crc64。如果某一端crc64不存在,則判定為不一致,僅當對象間拷貝有效。

  • --ignore-existing:跳過已存在的檔案。

支援單個對象得命令

--version-id string:對象的版本標識。

局部選項

局部選項

說明

--encoding-type string

輸入的對象名或檔案名稱的編碼方式。取值:url。

--request-payer string

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

--start-after string

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

--end-with string

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

--page-size int

返回對象或檔案的最大數。預設值:1000。取值範圍:1~1000。

--include stringArray

路徑或檔案名稱的包含規則。

--include-from stringArray

從規則檔案裡讀取包含規則。

--exclude stringArray

路徑或檔案名稱的排除規則。

--exclude-from stringArray

從規則檔案裡讀取排除規則。

--filter stringArray

路徑或檔案名稱過濾規則。

--files-from stringArray

從檔案中讀取源檔案名稱列表,忽略空行或注釋行。

--files-from-raw stringArray

從檔案中讀取源檔案名稱列表,忽略空行或注釋行。

--max-age Duration

不傳輸任何比此更早的檔案,預設是秒,或單位尾碼形式 ms|s|m|h|d|w|M|y。預設值:off。

--min-age Duration

不傳輸任何比此更新的檔案,預設是秒,或單位尾碼形式 ms|s|m|h|d|w|M|y。預設值:off。

--max-mtime Time

不傳輸任何比此更新的檔案,UTC時間格式。預設值:off。

--min-mtime Time

不傳輸任何比此更早的檔案,UTC時間格式。預設值:off。

--max-size SizeSuffix

限制傳輸的最大檔案大小,預設是位元組,或單位尾碼形式B|K|M|G|T|P,1K(KiB)=1024B,

--min-size SizeSuffix

限制傳輸的最小檔案大小,預設是位元組,或單位尾碼形式B|K|M|G|T|P,1K(KiB)=1024B,

--metadata-exclude stringArray

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

--metadata-include stringArray

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

--metadata-filter stringArray

對象中繼資料過濾規則。

--metadata-filter-from stringArray

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

--checksum

僅拷貝檔案大小和校正和(如果存在)不一致的源檔案。

--size-only

僅拷貝檔案大小不一致的源檔案。

-u, --update

僅拷貝源檔案新於目標檔案。

-r, --recursive

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

-d, --dirs

返回目前的目錄下的檔案和子目錄,而非遞迴顯示所有子目錄下的所有檔案。

-f, --force

強制操作,不進行詢問提示。

--list-objects

使用ListObjects介面列舉對象。

--no-progress

不現顯示度條。

-j, --job int

多檔案操作時的並發任務數。預設值:3。

--checkers int

並行啟動並執行檢查器數量。預設值:16。

--parallel int

單檔案內部操作的並發任務數。

--part-size SizeSuffix

分區大小,預設情況下根據檔案大小自行計算合適的分區大小值。取值範圍:100KiB~5GiB。

--bigfile-threshold int

開啟大檔案分區上傳、下載或拷貝的閾值。預設值:104857600。

對象屬性相關

--version-id string

對象的版本標識。

--storage-class string

對象的儲存類型。取值:Standard、IA、Archive、ColdArchive、DeepColdArchive。

--acl string

對象的存取權限。取值:private、public-read、public-read-write、default。

--cache-control string

指定該對象被下載時網頁的緩衝行為。

--content-disposition string

指定對象的展示形式。

--content-encoding string

聲明對象的編碼方式。

--content-type string

對象的內容類型。

--expires string

指定緩衝內容的絕對到期時間。

--copy-props string

確定從來源物件複製哪些屬性。取值:none、metadata、default。

--tagging strings

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

--tagging-directive string

指定如何設定目標對象的標籤。取值:COPY、REPLACE。

--metadata strings

指定對象的使用者中繼資料,使用key=value格式。

--metadata-directive string

指定如何設定目標對象的中繼資料。取值:COPY、REPLACE。

過濾選項

過濾選項適用於支援大量操作的命令,例如ls,cp,sync,rm 等類似的命令。它們是根據路徑/檔案名稱、路徑/檔案清單、檔案的修改時間、檔案的大小進行篩選。對於對象,還支援根據元資訊進行篩選。

過濾選項只能在命令列中使用,不能在設定檔裡指定。

在測試過濾配置時,您可以通過ls命令方式驗證。也可以使用--dry-run/-n選項,在不進行任何更改的情況下執行試運行。

基於路徑/檔案名稱過濾

在檔案名稱或者檔案路徑匹配上,需要定義過濾規則,用於哪些檔案需要包含、哪些檔案需要排除。

規則定義為:--include(包含) 和 --exclude(排除),例如--include="*.txt" ,--exclude="*"

規則可以放在命令列選項裡,也可以放在規則檔案裡。規則可以任意組合,並出現多次。所有的規則會形成一個列表,按照如下原則篩選結果:

  • 規則是有順序的,命令中的參數從左至右、檔案裡的從上到下。

  • 對於讀取到的檔案/路徑,馬上進行規則檢查,確定是包含還是排除。

  • 規則檢查按照順序進行,如果匹配到規則(包含或者排除),馬上停止後面的檢查。

  • 如果所有的規則都不匹配,預設包含。

  • 對於本地檔案系統,有目錄的概念,當目錄被排除時,其下的所有的目錄和檔案都被排除。

  • 對於儲存空間,沒有目錄概念,會對所有的檔案逐一篩選。

採用Glob匹配模式,常用規則如下:

  • /開頭時,表示模式必須匹配路徑的開始;否則可以匹配路徑中任意一層名稱。

  • /結尾時,表示模式只匹配目錄,否則可以匹配目錄或檔案。如:dir/。

  • 中間的/表示路徑分隔字元。如:subdir/test.txt。

  • *匹配任意長度的任一字元,但不匹配/。如:*.text。

  • **結尾時匹配任意長度的任一字元(包括/)。如:dir/**匹配路徑"dir/subdir/xx/test.txt"。

  • ?匹配/以外的任意一個字元。

  • []匹配一個某一類字元,如:[a-z]匹配一個小寫字母,[0-9]匹配一個數字。

  • 預設必須匹配到路徑的末尾。如:foo匹配"foo"和"dir/foo",但不匹配"dir/foo1"和"foo/xx"。

  • 路徑被匹配的部分必須是包含完整的(目錄或檔案)名稱,不可從名稱中間切開。如:foo不匹配"xxx/afoo",abc/foo不匹配"subdir/aabc/foo"。

說明

在Windows系統中,仍然使用/標識路徑分割符,而不是使用\作為標識。

路徑/檔案名稱過濾器由命令列中指定的一個或者多個篩選規則建立一個有序的規則列表,支援的篩選規則文法和篩選規則參數如下:

專案

說明

篩選規則文法

  • rule pattern規則選項參數:Glob匹配模式。

  • rule filename規則選項參數:Glob匹配模式規則檔案路徑。

  • rule modifiers pattern規則選項參數:指令Glob匹配模式,指令為+表示包含,-表示清除。

篩選規則選項參數

  • --include

  • --include-from

  • --exclude

  • --exclude-from

  • --filter

  • --filter-from

常用選項和說明如下:

選項

說明

--include

--exclude

後面直接跟匹配模式,每個選項只表示一條規則,如果要使用多條規則,您可以重複使用這些選項。

如--include "*.txt" --include "*.js" --exclude "*.jpg"

--filter

後面跟指令匹配模式,每個選項只表示一條規則。如果要使用多條規則,您可以重複使用這些選項。

如--filter "+ *.txt" --filter "+ *.js" --filter "- *.txt"

--include-from

--exclude-from

後面跟著規則檔案路徑,規則檔案裡的一行表示一個Glob匹配模式。如果要引入多個規則檔案,您可以重複使用這些選項。

通過--include-from引入的都為包含規則,通過--exclude-from引入的都為排除規則。

如 --include-from include-file.txt --exclude-from exclude-file.txt

include-file.txt,內容為

 *.txt
 *.js

exclude-file.txt,內容為*.jpg

--filter-from

後面跟著規則檔案路徑,通過規則檔案裡的一行表示一個指令 Glob匹配模式。

如果要引入多個規則檔案,您可以重複使用這些選項。

如--filter-from filter-file.txt

filter-file.txt內容如下:

 # a filter rule file
 + *.txt
 + *.js
 - **

補充說明:

  • 從規則檔案讀取時,從上到下處理規則,會忽略空行或#;開頭的注釋行。

  • 當檔案路徑為-時,表示從標準輸入(stdin)中讀取,只能配置一個。

  • 如果使用了--include或--include-from規則,則會在其規則列表的底部列表添加一個- **規則。

  • 採用--filter+ pattern時,不會在其規則的底部列表添加一個- **規則。

當需要通過--filter 配置只包含尾碼為jpg的檔案規則時,您需要設定為--filter "+ *.jpg" --filter "- **"。

說明

不支援--filter/--filter-from和--include/--include-from、--exclude/--exclude-from混合使用。

基於路徑/檔案清單過濾

您可以將路徑/檔案名稱列表通過命令列選項指定,並添加到過濾列表裡。支援的配置選項為:

選項

說明

--files-from

從檔案裡讀入路徑/檔案名稱列表,如果要使用多個列表檔案,您可以重複使用這些選項。

在處理列表檔案中的每行時,會去除前置或尾隨空格,以及忽略#;開頭的注釋行。

--files-from-raw

從檔案裡讀入路徑/檔案名稱列表,如果要使用多個列表檔案,您可以重複使用這些選項。

在處理列表檔案中的每行時,不忽略前置或尾隨空格,以及#;開頭的注釋行。

說明

當使用基於路徑/檔案清單的匹配規則時,會忽略掉其它模式的匹配規則。

基於檔案時間過濾

您可以設定時間過濾規則,根據檔案或對象的最後修改時間,只傳輸在這個時間範圍裡的檔案或者對象。

時間過濾規則,支援兩種設定模式:相對時間和絕對時間,其配置參數為:

參數

說明

--min-age

不傳輸任何比此更新的檔案,預設單位是秒,也可以使用單位尾碼形式。例如 1h,表示1小時。

--max-age

不傳輸任何比此更早的檔案,預設單位是秒,也可以使用單位尾碼形式。例如 1h,表示1小時。

--min-mtime

不傳輸任何比此更早的檔案,時間格式,UTC時間。例如 2006-01-02T15:04:05。

--max-mtime

不傳輸任何比此更新的檔案,時間格式,UTC時間,例如 2006-01-02T15:04:05。

補充說明:

  • --min-age,--max-age支援的單位尾碼為: ms 毫秒、s 秒、m 分鐘、h 小時、d 天、w 星期、M 月、y 年。

  • 使用單位尾碼時,可以是小數,例如1.5d (一天半)。

樣本:列舉3天以前的檔案或者對象。

ossutil ls oss://bucket/ --min-age 3d

基於檔案大小過濾

您還可以設定檔案大小過濾規則,根據檔案或對象的大小,只傳輸在這個大小圍裡的檔案或者對象。

檔案大小過濾規則,其配置參數為:

參數

說明

--min-size

不傳輸任何比此小的檔案,預設單位是位元組(B),也可以使用單位尾碼形式,例如1K(KiB),表示1024位元組。

--max-size

不傳輸任何比此大的檔案,預設單位是位元組(B),也可以使用單位尾碼形式,例如1K(KiB),表示1024位元組。

補充說明:

  • 支援的單位尾碼為:K(KiB)=1024位元組、M(MiB)、G(GiB)、G(GiB)、T(TiB)、P(PiB)、E(EiB)。

  • 使用單位尾碼時,可以是小數,例如0.5K。

樣本:列舉大小1MiB以內的檔案或者對象。

ossutil ls oss://bucket/ --max-size 1M

基於對象的中繼資料匹配規則

中繼資料過濾器的使用方式和基於路徑/檔案名稱的匹配規則類似,但是它只支援儲存空間裡的對象。

在中繼資料過濾器裡,對象的中繼資料定義為key=value,可以採用Glob規則進行匹配。

當前支援的配置選項為:

  • --metadata-include

  • --metadata-exclude

  • --metadata-filter

  • --metadata-filter-from

當前支援的對象中繼資料如下:

  • 儲存類型:採用x-oss-storage-class=value,value取值Standard、IA、Archive、ColdArchive、DeepColdArchive。

  • 物件類型:採用x-oss-object-type=value,value取值Normal、Multipart、Appendable、Symlink。

  • 恢複狀態:採用x-oss-restore=value,value根據實際值填寫。

  • Content-Type:採用 content-type=value,value根據實際值填寫。

  • 使用者自訂中繼資料:採用 x-oss-meta-aaa=value,其中aaa為小寫,value根據實際值填寫。

樣本:查詢儲存類型為歸檔、冷歸檔和深度冷歸檔對象。

ossutil ls oss://bucket/ --metadata-include "x-oss-storage-class=*Archive"