tencent cloud

对象存储

动态与公告
产品动态
产品公告
产品简介
产品概述
功能概览
应用场景
产品优势
基本概念
地域和访问域名
规格与限制
产品计费
计费概述
计费方式
计费项
免费额度
计费示例
查看和下载账单
欠费说明
常见问题
快速入门
控制台快速入门
COSBrowser 快速入门
用户指南
创建请求
存储桶
对象
数据管理
批量处理
全球加速
监控与告警
运维中心
数据处理
内容审核
智能工具箱
数据工作流
应用集成
工具指南
工具概览
环境安装与配置
COSBrowser 工具
COSCLI 工具
COSCMD 工具
COS Migration 工具
FTP Server 工具
Hadoop 工具
COSDistCp 工具
HDFS TO COS 工具
GooseFS-Lite 工具
在线辅助工具
自助诊断工具
实践教程
概览
访问控制与权限管理
性能优化
使用 AWS S3 SDK 访问 COS
数据容灾备份
域名管理实践
图片处理实践
COS 音视频播放器实践
工作流实践
数据直传
内容审核实践
数据安全
数据校验
大数据实践
COS 成本优化解决方案
在第三方应用中使用 COS
迁移指南
本地数据迁移至 COS
第三方云存储数据迁移至 COS
以 URL 作为源地址的数据迁移至 COS
COS 之间数据迁移
Hadoop 文件系统与 COS 之间的数据迁移
数据湖存储
云原生数据湖
元数据加速
数据加速器 GooseFS
数据处理
数据处理概述
图片处理
媒体处理
内容审核
文件处理
文档处理
故障处理
获取 RequestId 操作指引
通过外网上传文件至 COS 缓慢
访问 COS 时返回403错误码
资源访问异常
POST Object 常见异常
API 文档
简介
公共请求头部
公共响应头部
错误码
请求签名
操作列表
Service 接口
Bucket 接口
Object 接口
批量处理接口
数据处理接口
任务与工作流
内容审核接口
云查毒接口
SDK 文档
SDK 概览
准备工作
Android SDK
C SDK
C++ SDK
.NET(C#) SDK
Flutter SDK
Go SDK
iOS SDK
Java SDK
JavaScript SDK
Node.js SDK
PHP SDK
Python SDK
React Native SDK
小程序 SDK
错误码
鸿蒙(Harmony) SDK
终端 SDK 质量优化
安全与合规
数据容灾
数据安全
访问管理
常见问题
热门问题
一般性问题
计费计量问题
域名合规问题
存储桶配置问题
域名和 CDN 问题
文件操作问题
日志监控问题
权限管理问题
数据处理问题
数据安全问题
预签名 URL 问题
SDK 类问题
工具类问题
API 类问题
服务协议
Service Level Agreement
隐私政策
数据处理和安全协议
联系我们
词汇表
文档对象存储工具指南COSCLI 工具常用命令同步上传下载或拷贝文件 - sync

同步上传下载或拷贝文件 - sync

PDF
聚焦模式
字号
最后更新时间: 2026-03-30 16:11:06
sync 命令用于同步上传、下载或拷贝文件,与 cp 命令不同的是:sync 命令首先会对比同名文件的 crc64,如果 crc64值相同则不进行传输。
注意:
如需使用上传文件命令,在您进行 授权策略 时,action 需要设置为 cos:HeadBucketcos:GetBucketcos:HeadObjectcos:InitiateMultipartUploadcos:UploadPartcos:CompleteMultipartUploadcos:ListMultipartUploadscos:ListParts
如需使用下载文件命令,在您进行 授权策略 时,action 需要设置为 cos:HeadBucketcos:GetBucketcos:HeadObjectcos:GetObject
如需使用拷贝文件命令,在您进行 授权策略 时,目标对象 action 需要设置为 cos:GetBucketcos:HeadObjectcos:InitiateMultipartUploadcos:PutObjectcos:CompleteMultipartUpload。源对象 action 需要设置为cos:HeadBucketcos:GetBucketcos:HeadObjectcos:GetObject
更多授权请参见 支持 CAM 的业务接口

命令格式

./coscli sync <source_path> <destination_path> [flag]
sync 命令包含以下参数:
参数格式
参数用途
示例
source_path
源文件路径。可以为本地路径或 COS 文件路径。COS 路径支持使用 配置参数 中的桶别名,或桶名称进行访问。如使用桶名称访问,需要额外携带 endpoint flag。
本地路径:~/example.txt
使用桶别名指定 COS 文件路径:cos://bucketalias/example.txt
使用桶名称指定 COS 文件路径:cos://examplebucket-1250000000/example.txt
destination_path
目的文件路径。可以为本地路径或 COS 文件路径。COS 路径支持使用 配置参数 中的桶别名,或桶名称进行访问。如使用桶名称访问,需要额外携带 endpoint flag。
本地路径:~/example.txt
使用桶别名指定 COS 文件路径:cos://bucketalias/example.txt
使用桶名称指定 COS 文件路径:cos://examplebucket-1250000000/example.txt
sync 命令包含以下可选 flag:
flag 简写
flag 全称
flag 用途
--include
包含特定模式的文件(v1.0.4之前的版本在上传时仅筛选传入路径下的本地文件路径,v1.0.4以及之后版本会筛选传入的全路径)
例如:需要上传./test 下的所有文件到 COS,./test下包含 aaa 文件夹,aaa 文件夹下包含1.txt文件
1.0.4之前的版本会匹配 aaa/1.txt
1.0.4及之后版本会匹配 ./test/aaa/1.txt
--exclude
排除特定模式的文件(v1.0.4之前的版本在上传时仅筛选传入路径下的本地文件路径,v1.0.4以及之后版本会筛选传入的全路径)
例如:需要上传./test 下的所有文件到 COS,./test下包含 aaa 文件夹,aaa 文件夹下包含1.txt文件
1.0.4之前的版本会匹配 aaa/1.txt
1.0.4及之后版本会匹配 ./test/aaa/1.txt
-r
--recursive
是否递归遍历文件夹下所有文件。
--storage-class
指定上传文件的存储类型(默认 STANDARD),更多存储类型,请参见 存储类型概述
--part-size
文件的分块大小,单位为MB,默认值为32,最大支持5120。如果需要根据文件大小自适应分块大小,请设置为0。
--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
--routines
指定文件间并发上传或下载的线程数量,默认为3
--fail-output
此选项决定是否启用上传或下载失败时文件的错误输出(默认为 true,开启)。如果启用,文件传输失败将被记录在指定目录内(如果没有指定,默认为./coscli_output)。如果禁用,只会将错误文件的数量输出到控制台。
--fail-output-path
此选项用于指定记录上传或下载失败文件的错误输出文件夹。通过提供自定义文件夹路径,您可以控制错误输出文件夹的位置和名称。如果未设置此选项,将使用默认的错误日志文件夹./coscli_output
--retry-num
限频重试次数(默认为0,不重试)。可选1-10次。当多台机器同时在同一个COS目录上执行下载操作时,可以通过指定此参数进行重试来规避限频错误。
--err-retry-num
错误重试次数(默认为5)。指定1-10次,或者设置为0表示不进行重试。
--err-retry-interval
重试间隔(仅在指定--err-retry-num1-10时可用)。指定1-10秒的重试间隔,如果不指定或设置为0,每次重试间隔将在1-10秒内的随机。
--only-current-dir
是否仅上传当前目录中的文件,忽略子目录及其内容(默认为 false,不忽略)。
--disable-all-symlink
是否上传时忽略所有软链接子文件和软链接子目录(默认为 true,不上传)。目前仅支持在 Linux 和 macOS 系统上使用。
--enable-symlink-dir
是否上传软链接的子目录(默认为 false,不上传)。目前仅支持在 Linux 和 macOS 系统上使用。
--disable-crc64
是否关闭 CRC64数据验证(默认为 false,启用验证)。
--delete
删除指定目标路径中的任何其他文件,仅保留此次同步的文件(默认为 false,不删除)。建议在使用--delete选项之前启用版本控制,以防止意外删除数据。
--backup-dir
同步已删除文件的备份,用于保存目标端已删除但源端不存在的文件(仅下载时生效,且在--delete=true 时必传)。上传及桶拷贝请使用版本控制来恢复意外删除数据。
--force
强制操作,不提示确认。(默认为 false
--disable-checksum
默认为 true ,仅校验分片 crc64。当设置为 false,校验整个文件的 crc64。(coscli V1.0.6以及之前版本默认false
--process-log
是否开启进程日志,默认为 true,开启
--process-log-path
此选项用于指定一个专用的输出文件夹来存储进程日志。日志将记录与文件上传或下载相关的信息,包括错误日志,正常执行日志,重试等详情。通过提供一个自定义的文件夹路径,您可以控制日志输出文件夹的位置和名称。如果未设置此选项,则将使用默认的日志文件夹(coscli_output)。
--update
仅传输修改时间较新的文件
--ignore-existing
仅传输不存在的文件
--skip-dir
默认为 false,当设置为 true 时传输跳过文件夹。
--acl
设置文件的 ACL,例如 private,public-read
--grant-read
赋予被授权者读取对象的权限,格式为 id="[OwnerUin]",例如 id="100000000001",可使用半角逗号(,)分隔多组被授权者,例如 id="100000000001",id="100000000002"。
--grant-read-acp
赋予被授权者读取对象的访问控制列表(ACL)的权限,格式为 id="[OwnerUin]",例如 id="100000000001",可使用半角逗号(,)分隔多组被授权者,例如 id="100000000001",id="100000000002"。
--grant-write-acp
赋予被授权者写入对象的访问控制列表(ACL)的权限,格式为 id="[OwnerUin]",例如 id="100000000001",可使用半角逗号(,)分隔多组被授权者,例如 id="100000000001",id="100000000002"。
--grant-full-control
赋予被授权者操作对象的所有权限,格式为 id="[OwnerUin]",例如 id="100000000001",可使用半角逗号(,)分隔多组被授权者,例如 id="100000000001",id="100000000002"。
--tags
对象的标签集合,最多可设置10个标签(例如,--tags="Key1=Value1&Key2=Value2")
--forbid-overwrite
针对未开启版本控制的存储桶,上传文件时,用于指定上传操作时是否禁止覆盖同名对象:
指定为 false 时,默认覆盖同名 Object。
指定为 true 时,表示禁止覆盖同名 Object。
当存储桶处于已开启或已暂停的版本控制状态时,x-cos-forbid-overwrite 请求头部设置无效,即允许覆盖同名对象。
--encryption-type
服务端加密方式(SSE-COS/SSE-C)。
--server-side-encryption
服务端加密算法,支持 AES256、cos/kms。
使用 SSE-COS 或 SSE-KMS 时,此字段为必选项
--sse-customer-algo
服务端加密算法,支持 AES256。
使用 SSE-C 时,此字段为必选项。
--sse-customer-key
服务端加密密钥的 Base64编码。
例如 MDEyMzQ1Njc4OUFCQ0RFRjAxMjM0NTY3ODlBQkNERUY=。
使用 SSE-C 时,此字段为必选项。
--sse-customer-key-md5
服务端加密密钥的 MD5哈希值,使用 Base64编码。
例如 U5L61r7jcwdNvT7frmUG8g==。
使用 SSE-C 时,此字段为必选项
--check-point
是否开启断点续传,默认为 true,开启断点续传
说明:
使用命令时,请确保工具有访问本地路径的权限。
sync 命令在上传和下载大文件时会自动启用并发上传/下载。
当文件大于 --part-size 时,COSCLI 会先将文件按 --part-size 进行切块,之后用 --thread-num 个线程并发地执行上传/下载任务。
每个线程都会维护一个链接,对于每个链接,您可以使用 --rate-limiting 参数对单链接进行限速,当启用并发上传/下载时,总速率为 --thread-num * --rate-limiting
当以分块形式上传/下载文件时,会默认开启断点续传。
--include--exclude 支持标准正则表达式的语法,您可以使用它来过滤出符合特定条件的文件。
默认不会上传软链接,如需上传软链接,设置 --disable-all-symlink=false --enable-symlink-dir=true 即可。注意:如果软链接存在循环引用,可能导致工具进入死循环状态。
使用 zsh 时,您可能需要在 pattern 串的两端加上双引号。
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
用户在使用 sync 命令时,除了产生 PUT 请求费用,还有以下两种情况对云上文件有 HEAD 请求,而产生额外的费用:
没有添加指定快照目录的参数(--snapshot-path),会产生 HEAD 请求费用。
已添加指定快照目录参数(--snapshot-path)且属于首次生成快照目录,会产生 HEAD 请求费用。若非首次生成的快照目录则不会产生额外的请求费用。
关于此命令的其他通用选项(例如切换存储桶、切换用户账号等),请参见 通用选项 文档。

操作示例

同步上传文件

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

帮助和支持

本页内容是否解决了您的问题?

填写满意度调查问卷,共创更好文档体验。

文档反馈