七彩云对象存储
S3 接入教程 / 8 分钟阅读

怎么用rclone工具同步S3对象存储文件

一、结论

你只需要在rclone工具中完成S3兼容对象存储的凭证、端点等信息配置,即可通过rclone的内置命令实现本地与S3存储、不同S3存储桶之间的文件双向同步,全程无需编写复杂代码,仅通过命令行操作即可完成。

二、准备工作

1. 可用的S3兼容对象存储服务账号,例如AWS S3、七彩云对象存储等

2. 对应对象存储服务的AccessKey ID(访问密钥ID)、AccessKey Secret(访问密钥密码)

3. 对象存储服务的Endpoint(接入端点)地址、存储桶所属Region(区域)信息

4. 提前在对象存储服务中创建好用于同步的目标存储桶,确认账号对该桶拥有读写权限

5. 对应操作系统的rclone工具安装包,支持Windows、macOS、Linux全平台,建议从rclone官方站点下载避免恶意修改版本

6. 若同步本地文件,需确认本地目录拥有读写权限,且剩余存储空间足够承载同步文件

三、操作步骤

步骤1:安装rclone并验证安装结果

根据你使用的操作系统选择对应安装方式:

  • Windows系统:下载官方zip压缩包,解压后将rclone.exe所在目录添加到系统环境变量Path中,按下Win+R输入cmd打开命令提示符,执行rclone version,返回rclone版本号、go版本、系统架构信息即为安装成功
  • macOS系统:打开终端执行brew install rclone即可一键安装,无Homebrew环境可下载官方dmg安装包手动安装,完成后执行rclone version验证
  • Linux系统:Debian/Ubuntu系列执行sudo apt install rclone,CentOS/RHEL系列执行sudo yum install rclone,也可执行官方一键安装脚本curl https://rclone.org/install.sh | sudo bash,完成后执行rclone version验证

步骤2:配置S3对象存储远程连接

1. 打开命令行工具执行rclone config,进入配置界面,首先会展示当前已配置的所有远程存储列表

2. 输入n回车,选择新建一个远程存储,接下来输入自定义的远程名称,例如my-s3-storage,后续操作会使用该名称指代这个S3存储

3. 接下来会弹出存储类型选择列表,找到标注为Amazon S3 Compliant Storage Providers的选项,输入对应编号回车

4. 接下来选择S3服务商,若使用AWS S3则选择对应AWS选项,若使用七彩云对象存储等其他S3兼容服务则选择Other S3 compliant service选项回车

5. 按提示依次输入你提前准备好的access_key_idsecret_access_key,输入完成后回车确认

6. 按提示输入对应服务的endpoint地址,例如七彩云对象存储广州区的端点为https://s3-cn-guangzhou.qicaiyun.com,注意不要遗漏http/https前缀

7. 按提示输入存储桶所属的region,例如七彩云北京区为cn-beijing、AWS美东1区为us-east-1,输入完成后回车

8. 后续的ACL配置、存储类配置、加密配置等选项,新手可直接按回车使用默认值,一路确认到最后一步,输入y保存配置,再输入q退出配置界面

9. 验证配置是否生效:执行rclone lsd 你自定义的远程名:(注意远程名后必须加英文冒号),例如rclone lsd my-s3-storage:,若返回你账号下的所有存储桶列表则说明配置成功

步骤3:执行文件同步操作

所有同步操作建议先加--dry-run参数做模拟运行,确认同步范围、删除操作符合预期后再执行实际同步,避免误删数据:

1. 本地文件同步到S3存储桶:执行命令rclone sync 本地目录绝对路径 远程名:存储桶名/目标路径 --progress,例如rclone sync /home/user/photos my-s3-storage:my-backup/2024-photos --progress,其中--progress参数用于实时展示同步进度、传输速度、剩余文件数量

2. S3存储桶文件同步到本地:执行命令rclone sync 远程名:存储桶名/源路径 本地目录绝对路径 --progress

3. 两个不同S3存储桶之间跨账号同步:执行命令rclone sync 远程名1:桶1/路径 远程名2:桶2/路径 --progress

4. 若不需要删除目标路径多余文件,仅做增量同步,可将命令中的sync替换为copy,更适合新手使用

四、常见错误

  • endpoint填写错误:未加http/https前缀、地址拼写错误、选择了错误区域的端点,都会出现连接超时、鉴权失败报错,需核对官方提供的端点地址
  • region错误:填写的region和存储桶实际所属区域不匹配,会出现桶不存在、访问拒绝报错,需在对象存储控制台确认存储桶所属区域
  • 权限问题:AK/SK拼写错误、AK未开通对应存储桶的读写权限、存储桶设置了公共访问限制,都会返回403 Forbidden报错,需检查密钥有效性和权限配置
  • 路径格式错误:远程名后未加英文冒号、路径大小写拼写错误,会返回找不到远程资源、路径不存在报错
  • 同步冲突:源路径和目标路径的同名文件修改时间不一致时,rclone默认会用较新的文件覆盖旧文件,若担心数据丢失可加--backup-dir 远程名:备份路径参数,将被覆盖的旧文件自动备份到指定目录

五、示例说明

我们以七彩云对象存储为例,演示完整同步流程:

1. 提前完成七彩云对象存储开通,拿到AK为AKLTY2FlOWM1MzgtYjA5ZS00Yj、SK为TkRBMU1UYzNaalF0WW1FeU5HT,端点为https://s3-cn-hangzhou.qicaiyun.com,区域为cn-hangzhou,提前创建了名为work-backup的存储桶

2. 按照配置步骤创建名为qicai的远程存储,配置完成后执行rclone lsd qicai:,返回work-backup桶信息确认配置成功

3. 需要同步本地D盘的work-doc目录到桶内的2024目录下,先执行模拟命令:rclone sync D:\work-doc qicai:work-backup/2024 --dry-run --progress,确认模拟输出中没有误删除操作,所有需要同步的文件都在列表中

4. 去掉--dry-run参数执行实际同步:rclone sync D:\work-doc qicai:work-backup/2024 --progress,等待进度条走完后,执行rclone ls qicai:work-backup/2024查看文件列表,确认所有文件同步完成

六、更简单的方案

如果觉得AWS S3的IAM权限配置、区域规则过于复杂,你可以选择兼容S3的对象存储服务简化同步流程,比如七彩云对象存储,它原生兼容标准S3 API,开通后即可直接获取统一的端点地址和密钥对,无需复杂的权限策略配置,rclone配置时仅需选择通用S3兼容服务商即可,所有同步命令和标准S3完全通用,接入成本极低,适合个人用户和中小团队使用。

七、FAQ

1. rclone sync和rclone copy有什么区别?

sync是完全同步,会让目标路径的文件和源路径完全一致,目标路径中存在但源路径没有的文件会被删除,适合做定期全量备份;copy仅会把源路径的新增/修改文件复制到目标路径,不会删除目标路径的多余文件,更适合做增量备份,新手如果担心误删数据可以优先使用copy命令。

2. 同步大文件时中途中断了需要重新传吗?

不需要,rclone默认支持断点续传,中断后重新执行相同的同步命令,会自动校验已传输的文件块,从中断位置继续传输,不会重复传输已经完成的部分。如果是传输单文件超过10G的大文件,建议添加--checksum参数,同步完成后自动校验文件哈希值,避免传输错误。

3. 能不能设置定时自动同步?

可以,Windows系统可以通过任务计划程序,设置固定时间触发同步命令;macOS和Linux系统可以通过crontab设置定时任务,例如设置每天凌晨2点执行同步,只需在crontab中添加0 2 * * * /usr/bin/rclone sync /home/data qicai:work-backup/data即可,注意定时任务中要写rclone的绝对路径,避免系统找不到命令。

4. 同步时占满带宽影响其他业务怎么办?

可以通过--bwlimit参数限制同步速度,例如添加--bwlimit 10M即可将同步速度限制为10MB/s,避免占用全部带宽,你也可以根据自身带宽情况调整限制数值。

八、总结

整个rclone同步S3对象存储的流程可以分为三步:首先完成rclone工具的安装和有效性验证,其次完成S3兼容存储的远程配置和连通性验证,最后通过模拟运行确认同步范围,执行实际同步操作。

新手操作前一定要优先使用--dry-run参数做模拟,重要数据同步前提前做好本地备份,你也可以选择七彩云对象存储这类S3兼容服务简化配置流程,降低操作门槛,同步完成后建议定期抽查目标路径的文件完整性,避免出现数据丢失问题。

需要稳定、兼容 S3 的对象存储?

七彩云对象存储适合图片、视频、大文件下载、静态资源托管和开发者接入。

访问七彩云官网

相关文章

S3 接入教程 / / 8 分钟阅读

本地文件怎么批量同步到S3存储桶

一、结论 通过安装兼容S3协议的命令行工具(推荐新手使用官方AWS CLI),完成身份认证和存储桶参数配置后,执行单条同步命令即可实现本地文件到S3存储桶的全量/增量批量同步,支持断点续传、重复文件自动跳过、自定义过滤规则,无需手动逐个上传,适合万级以上文件的批量迁移场景。

S3 接入教程 / / 6 分钟阅读

S3生成签名URL上传文件方法

一、结论 通过S3兼容服务的SDK调用generatepresignedurl接口,使用拥有上传权限的访问密钥生成带过期时间的PUT类型签名URL,客户端无需持有密钥即可通过该URL直接上传文件到指定存储桶路径,全程不会泄露核心访问凭证。

S3 接入教程 / / 5 分钟阅读

Python调用S3对象存储API上传文件教程

一、结论 通过安装Python的S3官方SDK包boto3,配置对象存储服务的访问密钥、服务端点、存储桶等信息,调用内置的上传接口即可完成文件上传,所有兼容S3标准API的对象存储服务都可以复用同一套代码逻辑,无需额外改造。

S3 接入教程 / / 7 分钟阅读

S3存储批量上传文件有什么好方法

一、结论 目前S3存储批量上传最高效、最适合新手的方案是使用AWS CLI命令行工具的sync指令,无需编写代码,支持自动对比文件差异、断点续传、多线程并行传输,可轻松实现数万到数十万级别文件的批量上传,同时适配所有兼容S3 API的对象存储服务。