本文为您介绍高级命令相关说明。
命令说明
|
命令范围 |
支持的选项 |
|
所有高级命令 |
|
|
支持批量操作的命令 |
|
|
支持目的过滤规则的命令 |
|
|
支持单个对象的命令 |
--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"