高級命令
本文為您介紹高級命令相關說明。
命令說明
命令范圍 | 支持的選項 |
所有高級命令 |
|
支持批量操作的命令 |
|
支持目的過濾規則的命令 |
|
支持單個對象的命令 | --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 | 后面直接跟匹配模式,每個選項只表示一條規則,如果要使用多條規則,您可以重復使用這些選項。 如--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,內容為
exclude-file.txt,內容為 |
--filter-from | 后面跟著規則文件路徑,通過規則文件里的一行表示一個指令 Glob匹配模式。 如果要引入多個規則文件,您可以重復使用這些選項。 如--filter-from filter-file.txt filter-file.txt內容如下:
|
補充說明:
從規則文件讀取時,從上到下處理規則,會忽略空行或
#
、;
開頭的注釋行。當文件路徑為
-
時,表示從標準輸入(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"