本文為您介紹進階命令相關說明。
命令說明
|
命令範圍 |
支援的選項 |
|
所有進階命令 |
|
|
支援大量操作的命令 |
|
|
支援目的過濾規則的命令 |
|
|
支援單個對象的命令 |
--version-id string:對象的版本標識。 |
|
支援列表模式的命令 |
--list-format:列表檔案的格式,取值:plain、inventory。 --list-manifest-from:從檔案中讀取列表檔案格式的描述資訊,當列表檔案格式為inventory時,需要設定該參數。 |
局部選項
|
局部選項 |
選項類型 |
說明 |
|
--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 |
string |
指定對象的標籤,使用key=value格式。 |
|
--tagging-directive |
string |
指定如何設定目標對象的標籤。取值:COPY、REPLACE。 |
|
--metadata |
string |
指定對象的使用者中繼資料,使用key=value格式。 |
|
--metadata-directive |
string |
指定如何設定目標對象的中繼資料。取值:COPY、REPLACE。 |
|
--list-format |
string |
列表檔案的格式,取值:plain、inventory。 |
|
--list-manifest-from |
string |
從檔案中讀取列表檔案格式的描述資訊,當列表檔案格式為inventory時,需要設定該參數 |
過濾選項
過濾選項適用於支援大量操作的命令,例如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系統中,仍然使用/標識路徑分割符,而不是使用\作為標識。
路徑/檔案名稱過濾器由命令列中指定的一個或者多個篩選規則建立一個有序的規則列表,支援的篩選規則文法和篩選規則參數如下:
|
專案 |
說明 |
|
篩選規則文法 |
|
|
篩選規則選項參數 |
|
常用選項和說明如下:
|
選項 |
說明 |
|
--include --exclude |
參數後面直接跟匹配模式,每個選項只表示一條規則,如果要使用多條規則,您可以重複使用這些選項。 如 以下樣本命令遞迴地從阿里雲OSS的oss://examplebucket/exampledir/目錄下載符合過濾規則的檔案至本地localdir/,具體規則為包含所有
|
|
--filter |
參數後面跟指令匹配模式,每個選項值表示一條規則。如果要使用多條規則,您可以重複使用這些選項。 如
以下樣本命令遞迴地從阿里雲OSS的oss://examplebucket/exampledir/目錄下載符合過濾規則的檔案至本地localdir/,具體規則為僅包含
|
|
--include-from --exclude-from |
參數後面跟著規則檔案路徑,規則檔案裡的一行表示一個Glob匹配模式。如果要引入多個規則檔案,您可以重複使用這些選項。 通過--include-from引入的都為包含規則,通過--exclude-from引入的都為排除規則。 如 規則檔案include-file.txt的內容如下:
規則檔案include-file.txt的內容如下:
|
|
--filter-from |
參數後面跟著規則檔案路徑,通過規則檔案裡的一行表示一個指令 Glob 匹配模式。 如果要引入多個規則檔案,您可以重複使用這些選項。 如
|
補充說明:
-
從規則檔案讀取時,從上到下處理規則,會忽略空行或
#、;開頭的注釋行。 -
當檔案路徑為
-時,表示從標準輸入(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 |
從檔案裡讀入路徑/檔案名稱列表,如果要使用多個列表檔案,您可以重複使用這些選項。 在處理列表檔案中的每行時,不忽略前置或尾隨空格,以及 |
當使用基於路徑/檔案清單的匹配規則時,會忽略掉其它模式的匹配規則。
列表檔案中的目錄對象(以 / 結尾的對象),預設會當作去除 / 結尾後的對象處理。如果需要嚴格區分這兩個對象,請加上 --support-dir-object 選項。自 2.2.1 版本起支援。
例如:列表檔案包含如下內容:
folder/file/
folder/file
-
未設定
--support-dir-object時,過濾列表裡生效的檔案為folder/file。 -
設定
--support-dir-object時,過濾列表裡生效的檔案為folder/file和folder/file/。
基於檔案時間過濾
您可以設定時間過濾規則,根據檔案或對象的最後修改時間,只傳輸在這個時間範圍裡的檔案或者對象。
時間過濾規則,支援兩種設定模式:相對時間和絕對時間,其配置參數為:
|
參數 |
說明 |
|
|
--min-age |
Duration |
僅處理修改時間在指定時間間隔前的檔案,預設單位是秒,可以使用單位尾碼形式。例如 1h,表示1小時。 說明
|
|
--max-age |
Duration |
僅處理修改時間在指定時間間隔內的檔案,預設單位是秒,可以使用單位尾碼形式。例如 1h,表示1小時。 說明
|
|
--min-mtime |
Time |
僅處理修改時間在指定時間之後的檔案。 說明
|
|
--max-mtime |
Time |
僅處理修改時間在指定時間之前的檔案。 說明
|
補充說明:
-
--min-age,--max-age支援的單位尾碼為: ms 毫秒、s 秒、m 分鐘、h 小時、d 天、w 星期、M 月、y 年。
-
使用單位尾碼時,可以是小數,例如1.5d (一天半)。
-
--min-mtime,--max-mtime 支援的時間格式為:
2006-01-02T15:04:05Z07:00(RFC3339)、2006-01-02T15:04:05、2006-01-02 15:04:05、2006-01-02。 -
當時間中帶有時區時(如以 Z 或 +08:00 結尾),以該時區為準;未帶時區時,按運行環境的本地時區解析。
樣本:列舉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)、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"