控制台指南

最佳实践

开发者指南

API 文档

SDK 文档

诚邀爱技术、爱分享的你,成为文档内容共建者> HOT

命令格式

sync 命令用于同步上传、下载或拷贝文件,与 cp 命令不同的是:sync 命令首先会对比同名文件的 crc64,如果 crc64 值相同则不进行传输。

./coscli sync <source_path> <destination_path> [flag]

说明:

  • 有关 bucketAlias 的说明,请参见 下载与安装配置
  • 关于此命令的其他通用选项(例如切换存储桶、切换用户账号等),请参见 通用选项 文档。

sync 命令包含以下可选 flag:

flag 简写 flag 全称 flag 用途
--include 包含特定模式的文件
--exclude 排除特定模式的文件
-r --recursive 是否递归遍历文件夹下所有文件
--storage-class 指定上传至文件的类型(默认 STANDARD)
--part-size 文件分块大小(默认32MB,最大支持5GB)
--thread-num 并发线程数(默认并发5)
--rate-limiting 单链接速率限制(0.1 - 100MB/s)
--snapshot-path 指定保存上传或者下载文件时的快照信息所在的目录。在下一次上传或者下载文件时,coscli 会读取指定目录下的快照信息进行增量上传或者下载。本选项用来加速目录文件同步。
--meta 上传文件的元信息。包括部分 HTTP 标准属性(HTTP Header)以及以x-cos-meta-开头的用户自定义元数据(User Meta)。文件元信息格式为header:value#header:value,示例为Expires:2022-10-12T00:00:00.000Z#Cache-Control:no-cache#Content-Encoding:gzip#x-cos-meta-x:x
说明:

  • sync 命令在上传和下载大文件时会自动启用并发上传/下载。
  • 当文件大于 --part-size 时,COSCLI 会先将文件按 --part-size 进行切块,之后用 --thread-num 个线程并发地执行上传/下载任务。
  • 每个线程都会维护一个链接,对于每个链接,您可以使用 --rate-limiting 参数对单链接进行限速,当启用并发上传/下载时,总速率为 --thread-num * --rate-limiting
  • 当以分块形式上传/下载文件时,会默认开启断点续传。
  • --include--exclude 支持标准正则表达式的语法,您可以使用它来过滤出符合特定条件的文件。
  • 使用 zsh 时,您可能需要在 pattern 串的两端加上双引号。
  • snapshot-path 不要设置到为待迁移目录或其子目录。coscli 不会主动删除 snapshot-path 文件夹中的快照信息。为避免快照信息过多,请定期删除 snapshot-path 文件夹内无用的快照。
    ./coscli sync ~/test/ cos://bucket1/example/ -r --include ".*.txt" --snapshot-path=/path/snapshot-path  --meta=x-cos-meta-a:a#ContentType:text#Expires:2022-10-12T00:00:00.000Z

操作示例

同步上传文件

./coscli sync ~/example.txt cos://bucket1/example.txt

同步下载文件

./coscli sync cos://bucket1/example.txt ~/example.txt

桶内同步拷贝文件

./coscli sync cos://bucket1/example.txt cos://bucket1/example_copy.txt

跨桶同步拷贝文件

./coscli sync cos://bucket1/example.txt cos://bucket2/example_copy.txt

目录