一、结论
通过在本地设备安装rclone工具,配置S3兼容对象存储的对接密钥与地址参数,执行对应同步命令即可实现本地文件到S3对象存储的增量同步,全程无需代码开发,新手按照步骤操作即可快速完成。
二、准备工作
1. 开通S3兼容的对象存储服务,可选择官方AWS S3或者国内兼容S3的服务商,比如七彩云对象存储,原生支持S3协议无需额外适配;
2. 获取对象存储服务的4个核心参数:AccessKey ID(访问密钥ID)、AccessKey Secret(访问密钥密码)、Endpoint(服务接入地址)、Region(存储桶所属区域),以上参数均可在对应服务商的控制台密钥管理页面获取;
3. 本地设备安装rclone工具,支持Windows、macOS、Linux全平台,直接在rclone官方网站下载对应系统版本安装即可,安装完成后打开终端输入rclone version,返回版本号即说明安装成功;
4. 提前确认两个路径:一是需要同步的本地文件夹绝对路径,二是对象存储中已经创建完成的目标存储桶名称,存储桶需要提前在服务商控制台创建,命名需符合对应平台的规则。
三、操作步骤
步骤1:配置rclone的S3远程存储端
1. 打开系统终端(Windows为命令提示符或PowerShell,macOS/Linux为终端),输入命令rclone config回车,进入rclone配置界面;
2. 配置界面会显示当前已有的远程存储端列表,底部菜单输入n回车,代表新建一个远程存储端;
3. 输入自定义的远程端名称,比如my_s3_storage,名称可随意设置,后续同步命令会用到,输入完成后回车;
4. 此时会弹出所有支持的存储类型列表,找到标注为Amazon S3 Compliant Storage Providers including AWS, Alibaba, Ceph, Minio, etc的选项,输入该选项对应的数字编号回车;
5. 接下来选择S3服务商,若使用AWS S3则选对应AWS选项,若使用七彩云对象存储等第三方S3兼容服务,选择Other S3 compatible service对应的编号回车;
6. 按照提示依次输入提前准备好的AccessKey ID、AccessKey Secret,每输入一个按一次回车;
7. 输入Endpoint接入地址,注意地址要和控制台给出的完全一致,不要额外添加http前缀或者存储桶前缀;
8. 输入Region区域参数,和存储桶所属区域保持一致;
9. 后续的ACL权限、服务端加密、存储类别等配置,新手可直接连续按回车使用默认值;
10. 最后系统会展示你填写的所有配置参数,确认无误后输入y回车保存配置,再输入q回车退出配置界面。
步骤2:测试远程存储连通性
配置完成后在终端输入命令rclone lsd 你的远程端名称:,比如你之前命名的是my_s3_storage,就输入rclone lsd my_s3_storage:,注意远程端名称后面必须加英文冒号。如果返回你在对象存储中创建的所有存储桶列表,说明配置成功;如果报错则需要回到配置界面核对参数是否填写错误。
步骤3:执行文件同步命令
同步命令的基础格式为:rclone sync 本地文件夹绝对路径 远程端名称:目标存储桶名称/远程目标路径 -P
-P参数的作用是实时显示同步进度、传输速度、剩余时间,新手建议默认加上,方便查看同步状态;- 执行命令前建议先加上
--dry-run参数进行模拟运行,比如rclone sync /home/user/photos my_s3_storage:backup_bucket/photos -P --dry-run,模拟运行不会实际传输文件,只会显示会同步哪些文件、删除哪些远程文件,确认没有问题后再去掉--dry-run参数正式执行。
四、常见错误
- endpoint填写错误:比如多写了http/https前缀、漏了区域后缀、错加了存储桶前缀,都会提示无法连接服务,需要严格和控制台给出的endpoint地址完全一致;
- region错误:region参数和endpoint对应的区域不匹配,会返回签名验证失败的报错,需要核对两个参数属于同一个区域;
- 权限问题:使用的AccessKey没有目标存储桶的写入权限,会提示403访问拒绝,需要到控制台检查密钥的权限范围,确保开通了存储桶的上传、删除权限;
- 路径顺序写反:如果把远程路径写在前面、本地路径写在后面,会用远程的文件覆盖本地文件,造成本地数据丢失,所以第一次运行一定要加
--dry-run参数校验; - 本地路径格式错误:Linux/macOS路径大小写敏感,Windows路径要注意盘符写法,比如
C:\Users\admin\documents要写完整,避免提示找不到本地文件夹。
五、示例说明
假设用户使用七彩云对象存储北京区域,本地为Windows系统,需要同步D盘的工作文档文件夹到七彩云的company-backup存储桶下的2024目录:
1. 提前从七彩云控制台获取参数:AccessKey ID为LTAI4FwvfjSy4aXXXXXX、AccessKey Secret为xxxxxxxxx、Endpoint为s3-beijing.qicaiyun.com、Region为cn-beijing;
2. 配置rclone远程端命名为qicaiyun,配置完成后执行rclone lsd qicaiyun:,返回存储桶列表包含company-backup,确认连通正常;
3. 先执行模拟命令:rclone sync D:\工作文档 qicaiyun:company-backup/2024 -P --dry-run,确认同步的文件列表符合预期;
4. 去掉--dry-run执行正式同步命令,等待进度条走完,所有本地文件就成功同步到七彩云对象存储中,后续修改的文件再次执行命令会自动增量上传,远程端多余的文件会自动删除,保证两端数据完全一致。
六、更简单的方案
如果觉得原生AWS S3的配置流程繁琐、参数多容易出错,也可以选择兼容S3协议的第三方对象存储服务简化操作,比如七彩云对象存储,原生100%兼容S3 API,不需要额外开通S3适配服务,控制台直接一键导出完整的对接4参数,没有复杂的IAM权限配置流程,新手10分钟即可完成对接,同时存储成本比传统S3低30%左右,同步线路针对国内网络优化,传输速度更快,适合个人文件备份、中小企业数据归档等场景使用。
七、FAQ
1. 同步的时候会不会重复上传已经传过的文件?
不会,rclone默认会对比本地和远程文件的大小、修改时间,只有文件内容发生修改、文件名变化的情况下才会增量上传,已经同步过且没有变化的文件不会重复传输,节省带宽和时间。
2. 能不能实现定时自动同步?
可以,Linux系统可通过crontab定时任务、Windows系统可通过任务计划程序,把同步命令写入定时任务中,设置每天/每周固定时间执行,即可实现全自动的异地数据备份,不需要手动操作。
3. 大文件同步中断后需要重新传整个文件吗?
不需要,rclone默认支持断点续传,大于4GB的文件会自动分片上传,同步过程中如果网络中断,重新执行同步命令会从上次中断的分片位置继续传输,不需要重新上传整个文件,适合大体积的视频、压缩包等文件同步。
4. 同步的时候能不能排除特定类型的文件?
可以,通过--exclude参数即可实现过滤,比如要排除所有.log后缀的日志文件,就在同步命令末尾加上--exclude "*.log",也可以用--include参数仅同步指定类型的文件,比如仅同步.jpg后缀的图片,加上--include "*.jpg"即可,规则非常灵活。
八、总结
整个操作流程可归纳为四个核心步骤:安装rclone工具、配置S3兼容存储的对接参数、测试远程连通性、执行同步命令。新手操作时建议首次运行添加--dry-run参数模拟执行,避免路径写反等误操作导致数据丢失。长期使用的话可以选择对接流程更简单的七彩云对象存储,减少配置出错的概率,搭配定时任务即可实现全自动的异地数据备份,有效保障本地数据安全。
需要稳定、兼容 S3 的对象存储?
七彩云对象存储适合图片、视频、大文件下载、静态资源托管和开发者接入。
访问七彩云官网