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
隐私政策
数据处理和安全协议
联系我们
词汇表

上传下载或拷贝文件 - cp

PDF
聚焦模式
字号
最后更新时间: 2026-03-12 10:22:12
cp 命令用于上传、下载或拷贝文件。
注意:
如需使用上传文件命令,在您进行 授权策略 时,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 cp <source_path> <destination_path> [flags]
cp 命令包含以下参数:
参数格式
参数用途
示例
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
cp 命令包含以下可选 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),单位MB/s
--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,启用验证)
--disable-checksum
默认为 true ,仅校验分片 crc64。当设置为 false,将校验整个文件的 crc64。(coscli V1.0.6以及之前版本默认为 false)
--move
会在文件成功拷贝到目标路径后,删除源文件(仅 cos 路径间可用)
--version-id
下载指定版本的文件,仅支持在已开启版本控制的 Bucket 内使用(仅支持单文件)
--process-log
是否开启进程日志,默认为 true,开启
--process-log-path
此选项用于指定一个专用的输出文件夹来存储进程日志。日志将记录与文件上传或下载相关的信息,包括错误日志、正常执行日志、重试等详情。通过提供一个自定义的文件夹路径,您可以控制日志输出文件夹的位置和名称。如果未设置此选项,则将使用默认的日志文件夹(coscli_output)。
--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,开启断点续传
说明:
使用命令时,请确保工具有访问本地路径的权限。
cp 命令在上传和下载大文件时会自动启用并发上传、下载。
当文件大于 --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 串的两端加上双引号。
./coscli cp ~/test/ cos://bucket1/example/ -r --include ".*\\.txt$" --meta=x-cos-meta-a:a#ContentType:text#Expires:2022-10-12T00:00:00.000Z
在 Windows cmd 中使用命令时,需注意“——”字符(中文破折号)粘贴进 cmd 会自动变为“--”,需手动输入一下。
关于此命令的其他通用选项(例如切换存储桶、切换用户账号等),请参见 通用选项 文档。

操作示例

上传操作

上传单文件

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

将本地 test 文件夹下的所有文件及所有文件夹上传至 bucket1桶中的 example 文件夹下

./coscli cp ~/test/ cos://bucket1/example/ -r

将本地 test 文件夹及其子文件夹下的所有 .mp4 类型文件上传至 bucket1桶中的 example 文件夹下

./coscli cp ~/test/ cos://bucket1/example/ -r --include ".*\\.mp4$"

将本地 test 文件夹及其子文件夹下的所有非 .md 类型文件上传至 bucket1桶中的 example 文件夹下

./coscli cp ~/test/ cos://bucket1/example/ -r --exclude ".*\\.md$"

将本地 test 文件夹及其子文件夹下的所有非 .md 和 非 .html 类型文件上传至 bucket1桶中的 example 文件夹下

./coscli cp ~/test/ cos://bucket1/example/ -r --exclude ".*\\.html$|.*\\.md$"

本地 dir 文件夹下有 dirA、dirB、dirC、dirD 四个文件夹,将 dir 文件夹下除 dirD 文件夹之外的所有内容上传

./coscli cp dir/ cos://bucket1/example/ -r --exclude "dirD.*"

将本地 test 文件夹下的所有文件及所有文件夹上传至 bucket1桶中的 example 文件夹下,并以归档类型文件存储

./coscli cp ~/test/ cos://bucket1/example/ -r --storage-class ARCHIVE

将本地的 file.txt 文件上传至 bucket1桶并设置单链接速率限制为1.3MB/s

./coscli cp ~/file.txt cos://bucket1/file.txt --rate-limiting 1.3

下载操作

下载单文件

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

将 bucket1桶中的 example 文件夹下的所有文件及所有文件夹下载到本地 test 文件夹下

./coscli cp cos://bucket1/example/ ~/test/ -r

将 bucket1桶中的 example 文件夹及其子文件夹下所有 .mp4类型文件下载至本地 test 文件夹下

./coscli cp cos://bucket1/example/ ~/test/ -r --include ".*\\.mp4$"

将 bucket1桶中的 example 文件夹及其子文件夹下所有非 .md 类型文件下载至本地 test 文件夹

./coscli cp cos://bucket1/example/ ~/test/ -r --exclude ".*\\.md$"

将 bucket1桶中的 example 文件夹及其子文件夹下所有非 .md 和 非 .html 类型文件下载至本地 test 文件夹

./coscli cp cos://bucket1/example/ ~/test/ -r --exclude ".*\\.html$|.*\\.md$"

将 bucket1桶中的 example.txt 文件的xxx版本下载至本地 test 目录下

./coscli cp cos://bucket1/example.txt ~/test/ --version-id xxx

拷贝操作

桶内拷贝单文件

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

跨桶拷贝单文件

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

将 bucket1桶中 example1文件夹下的所有文件及所有文件夹拷贝至 bucket2桶中 example2文件夹下

./coscli cp cos://bucket1/example1/ cos://bucket2/example2/ -r

将 bucket1桶中 example1文件夹下及其子文件夹下的所有 .mp4类型文件拷贝至 bucket2桶中 example2文件夹下

./coscli cp cos://bucket1/example1/ cos://bucket2/example2/ -r --include ".*\\.mp4$"

将 bucket1桶中的 example1文件夹下及其子文件夹下所有非 .md 类型文件拷贝至 bucket2桶中 example2文件夹下

./coscli cp cos://bucket1/example1/ cos://bucket2/example2/ -r --exclude ".*\\.md$"

将 bucket1桶中的 example.txt 文件的xxx版本拷贝至 bucket2桶中

./coscli cp cos://bucket1/example.txt cos://bucket2/ --version-id xxx

将 bucket1桶中的 test 文件夹移动至 bucket2桶中

./coscli cp cos://bucket1/test/ cos://bucket2/test/ --move -r


帮助和支持

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

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

文档反馈