跨账号跨厂商S3桶20TB迁移:AWS/rclone CLI传输路径疑问
跨厂商S3兼容桶迁移:数据传输路径说明
AWS CLI的情况
如果你用AWS CLI操作不同厂商的S3兼容存储桶,默认的s3 cp或s3 sync命令会先把数据下载到本地机器,再上传到目标桶,没法实现跨厂商存储服务间的直接传输。原因是AWS CLI的原生跨桶复制仅支持AWS自家的S3存储,对第三方S3兼容服务,没有内置的服务器端复制通道,必须通过本地中转完成数据流转。
rclone CLI的情况
rclone支持跨厂商S3兼容存储的服务器端直接传输(无需经过本地机器),但需要满足两个前提:
- 源和目标存储厂商的S3兼容服务支持S3标准的
CopyObjectAPI(主流厂商如阿里云OSS、腾讯云COS、MinIO等都支持) - 执行命令时添加特定参数开启跨配置的服务器端复制
配置与命令示例
先通过
rclone config命令配置两个远程存储:- 分别添加源桶和目标桶对应的S3兼容配置,填写厂商的endpoint地址、IAM访问密钥(Access Key ID/Secret Access Key)、存储区域等信息
- 假设配置后的远程名称分别为
s3-source和s3-target
执行同步/复制命令时加上
--server-side-across-configs参数:# 同步源桶到目标桶(仅同步新增/修改的文件) rclone sync s3-source:your-source-bucket s3-target:your-target-bucket --server-side-across-configs # 复制源桶所有文件到目标桶(不管目标是否存在) rclone copy s3-source:your-source-bucket s3-target:your-target-bucket --server-side-across-configs加上该参数后,rclone会直接调用源存储和目标存储的服务器端复制接口,数据完全在两个云存储服务之间流转,不会经过你的本地机器,能大幅节省带宽和传输时间。
注意事项
- 如果目标存储厂商不支持
CopyObjectAPI,rclone会自动 fallback 到本地中转模式 - 传输前可以先用
rclone ls命令验证两个远程配置是否能正常访问对应桶
内容的提问来源于stack exchange,提问作者Sailesh Parajuli
相关产品推荐
相关产品推荐

