sync(在OSS之间同步文件)

您可以使用sync命令将同一个地域下某个存储空间(Bucket)中某个文件夹下的文件(Object)批量同步到另一个Bucket。

注意事项

  • 要在OSS之间同步文件,您必须具有oss:GetObjectoss:ListObjectsoss:PutObjectoss:DeleteObject权限。具体操作,请参见为RAM用户授权自定义的权限策略

  • 不支持将源Bucket中冷归档存储或者深度冷归档存储类型Object同步到目标Bucket。

命令格式

ossutil sync cloud_url cloud_url

参数

类型

说明

cloud_url

string

分别填写OSS源文件夹路径以及目标文件夹路径。格式为oss://bucketname/path/。例如,将目标存储空间examplebucket的srcdir文件夹同步到destdir文件夹,则源文件夹路径填写为oss://examplebucket/srcdir/,目标文件夹路径填写为oss://examplebucket/destcdir/

重要

如果输入的cloud_url没有以正斜线(/)结尾,ossutil会自动在结尾处添加一个正斜线(/)。

--acl

string

对象的访问权限。取值:

  • private:私有。

  • public-read:公共读。

  • public-read-write:公共读写。

  • default:继承Bucket。

--backup-dir

string

备份文件的目录。

--bigfile-threshold

int

开启大文件分片上传、下载或拷贝的阈值(默认值104857600)。

--cache-control

string

指定该对象被下载时网页的缓存行为。

--checkpoint-dir

string

断点续传信息的指定目录(默认值.ossutil_checkpoint/)。

--checksum

/

仅拷贝文件大小和校验和(如果存在)不一致的源文件,仅当对象间拷贝有效。

--content-disposition

string

指定对象的展示形式。

--content-encoding

string

声明对象的编码方式。

--content-type

string

对象的内容类型。

--copy-props

string

确定从源对象复制哪些属性。取值:

  • none

  • metadata

  • default

--delete

/

删除目标中存在但源中不存在的文件。

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

--list-objects

/

使用ListObjects接口列举对象。

--max-age

Duration

不传输任何比此更早的文件,默认是秒,或单位后缀形式 ms|s|m|h|d|w|M|y(默认值off)。

--max-mtime

Time

不传输任何比此更新的文件,UTC时间格式(默认值off)。

--max-size

SizeSuffix

限制传输的最大文件大小,默认是字节,或单位后缀形式B|K|M|G|T|P,1K(KiB)=1024B。

--max-sync-num

int

要同步的最大文件或对象数(默认值2000000),不大于5000000。

--metadata

strings

指定对象的用户元数据,使用key=value格式。

--metadata-directive

string

指定如何设置目标对象的元数据。取值:

  • COPY

  • REPLACE

--metadata-exclude

stringArray

对象元数据的排除规则。

--metadata-filter

stringArray

对象元数据过滤规则。

--metadata-filter-from

stringArray

从规则文件读取对象元数据过滤规则。

--metadata-include

stringArray

对象元数据的包含规则。

--min-age

Duration

不传输任何比此更新的文件,默认是秒,或单位后缀形式 ms|s|m|h|d|w|M|y(默认值off)。

--min-mtime

Time

不传输任何比此更早的文件,UTC时间格式(默认值off)。

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

分片大小,默认情况下根据文件大小自行计算合适的分片大小值。取值范围100Ki~5Gi。

-r, --recursive

/

递归进行操作。当指定该选项时,命令会对存储空间下所有符合条件的对象进行操作,否则只对路径指定的对象进行操作。

--request-payer

string

请求的支付方式,如果为请求者付费模式,请设置该值。取值:requester。

--size-only

/

仅拷贝文件大小不一致的源文件。

--start-after

string

按字母排序,返回设定值之后的对象,不包含设定值。

--storage-class

string

对象的存储类型。取值:

  • Standard:标准存储。

  • IA:低频存储。

  • Archive:归档存储。

  • ColdArchive:冷归档存储。

  • DeepColdArchive:深度冷归档存储。

--tagging

strings

指定对象的标签。使用key=value格式。

--tagging-directive

string

指定如何设置目标对象的标签。取值

  • COPY

  • REPLACE

-u, --update

/

仅拷贝源文件新于目标文件。

--ignore-existing

/

跳过已存在的目标文件。

说明

关于支持的全局命令行选项,请参见支持的全局命令行选项

使用示例

  • 将examplebucket1的exampledir文件夹同步到srcdir文件夹内。

    ossutil sync oss://examplebucket1/exampledir/  oss://examplebucket1/srcdir/
  • 将examplebucket1的exampledir文件夹同步到examplebucket2的destdir文件夹。

    ossutil sync oss://examplebucket1/exampledir/ oss://examplebucket2/destdir/
  • 结合--delete选项将examplebucket1的所有文件同步到examplebucket2,并删除examplebucket2存在而examplebucket1不存在的文件。

    ossutil sync oss://examplebucket1 oss://examplebucket2 --delete