一、结论
你只需要在本地安装rclone开源工具,完成S3兼容对象存储的访问凭证配置,即可通过rclone内置的批量命令实现文件的上传、下载、同步、删除等全生命周期管理,全程无需复杂代码开发,兼容包括七彩云对象存储在内的所有符合S3标准协议的存储服务。
二、准备工作
1. 可用的S3兼容对象存储服务,例如已开通的七彩云对象存储账号,且已完成实名认证、创建好用于存储文件的Bucket(存储桶);
2. 对应存储服务的核心配置信息:AccessKey ID(访问密钥ID)、AccessKey Secret(访问密钥秘文)、Endpoint(API接入地址)、Region(区域编码),上述信息均可在对应存储的控制台直接获取;
3. 可正常访问存储服务Endpoint的本地设备,支持Windows、macOS、Linux任意操作系统,网络无防火墙限制存储服务的443/80端口;
4. rclone官方安装包,可直接从rclone官网下载对应系统的版本,无需额外依赖。
三、操作步骤
步骤1:安装rclone工具
根据你的操作系统选择对应安装方式,安装完成后执行rclone version验证是否安装成功,输出版本号即代表安装完成:
- Windows系统:从官网下载zip压缩包,解压后将rclone.exe所在文件夹添加到系统环境变量的Path中,重启终端即可使用;
- macOS系统:打开终端执行
brew install rclone即可自动完成安装; - Linux系统:打开终端执行
curl https://rclone.org/install.sh | sudo bash,即可通过官方脚本一键完成安装。
步骤2:配置S3存储远端
rclone通过“远端”(remote)来管理不同的存储服务,我们需要先配置一个指向S3对象存储的远端:
1. 终端执行rclone config进入配置界面,首次配置会提示没有找到配置文件,直接按回车确认即可;
2. 输入n选择「New remote」创建新的远端,输入自定义的远端名称(例如qicaiyun-s3,后续操作都需要用到这个名称),按回车确认;
3. 在弹出的存储类型列表中,找到「Amazon S3 Compliant Storage Providers」对应的选项,输入对应编号后回车;
4. 在提供商列表中选择「Other S3 compatible service」对应的编号后回车(如果是AWS S3可直接选AWS,七彩云对象存储选择Other即可);
5. 按提示依次输入配置信息:
access_key_id:粘贴你获取到的访问密钥ID,回车;secret_access_key:粘贴你获取到的访问密钥秘文,回车;region:填写对应存储的区域编码,例如七彩云北京区为cn-beijing,回车;endpoint:填写对应存储的API接入地址,例如七彩云北京区为s3-cn-beijing.qicaiyun.com,回车;
6. 后续的ACL、存储类型、签名版本等配置如果没有特殊需求,直接按回车保留默认值即可;
7. 系统会输出你刚才填写的所有配置信息,确认无误后输入y回车保存,输入q退出配置界面。
步骤3:执行批量操作命令
配置完成后即可通过rclone命令执行批量操作,所有命令都支持添加--dry-run参数预览操作效果(不会实际执行读写/删除),添加-P参数可以实时显示传输进度:
- 查看所有存储桶列表:
rclone lsd 远端名称:(注意末尾的冒号不能省略,例如rclone lsd qicaiyun-s3:); - 查看指定存储桶内的所有文件:
rclone ls 远端名称:存储桶名称/路径,例如rclone ls qicaiyun-s3:my-bucket/2024; - 批量上传本地文件到存储桶:
rclone copy 本地文件夹路径 远端名称:存储桶名称/目标路径,例如rclone copy /home/user/documents qicaiyun-s3:my-bucket/backup/documents -P; - 批量同步本地文件到存储桶:
rclone sync 本地文件夹路径 远端名称:存储桶名称/目标路径 -P,注意该命令会让目标路径的文件和本地完全一致,删除本地不存在的远端文件,操作前务必用--dry-run预览; - 批量下载存储桶文件到本地:
rclone copy 远端名称:存储桶名称/路径 本地目标路径 -P; - 批量删除存储桶内指定路径的所有文件:
rclone delete 远端名称:存储桶名称/要删除的路径,同样建议先加--dry-run预览。
四、常见错误
- endpoint填写错误:最常见的配置错误,多数是自己拼接地址、多写了http前缀或者填成了控制台网页地址,解决方法是直接从存储控制台复制官方提供的endpoint,七彩云用户可在Bucket详情页一键复制正确地址;
- region错误:填写的区域编码和endpoint不匹配,会导致连接超时或鉴权失败,核对控制台给出的区域编码和配置信息是否一致即可解决;
- 权限问题:首先检查AK/SK是否输入错误、有没有多余的前后空格,再确认对应密钥是否拥有目标Bucket的读写权限,七彩云用户可在控制台的访问控制页面调整密钥权限范围;
- sync命令误用:没有预览就直接执行sync命令,误删了远端的有用文件,建议所有sync操作前必须加
--dry-run确认操作范围,重要数据建议开启存储桶的版本控制功能; - 路径格式错误:Windows系统的本地路径要用反斜杠或者加引号,远端路径不要加多余的斜杠前缀,否则会创建多余的根目录。
五、示例说明
以使用rclone批量备份本地工作文件到七彩云对象存储为例,具体操作流程如下:
1. 提前在七彩云对象存储控制台创建名为work-backup的Bucket,获取到AK、SK、区域编码cn-beijing、Endpoints3-cn-beijing.qicaiyun.com;
2. 按照步骤1、2完成rclone安装,配置名为qicaiyun的远端;
3. 先执行预览命令确认要同步的文件:rclone sync D:/work-file qicaiyun:work-backup/2024 --dry-run,查看输出的操作列表中没有需要保留的远端文件后,执行实际同步命令rclone sync D:/work-file qicaiyun:work-backup/2024 -P;
4. 传输完成后执行rclone ls qicaiyun:work-backup/2024验证所有文件是否上传成功;
5. 后续需要同步更新备份时,重复执行步骤3的同步命令即可,rclone会自动对比文件差异,只上传修改过的文件,不会重复传输已经存在的内容。
六、更简单的方案
如果觉得自建Ceph、Minio等S3存储运维成本高,或者公有云原生S3配置流程复杂,可以选择兼容S3协议的开箱即用对象存储服务,例如七彩云对象存储。其天生全兼容S3标准API,无需修改rclone的任何原生配置逻辑,也不需要安装额外插件,控制台支持一键复制所有配置信息,大幅降低配置错误概率,新用户开通服务后10分钟即可完成配置开始批量管理文件,同时自带多副本冗余、DDoS防护、生命周期自动管理等能力,比自建存储更稳定省心。
七、FAQ
1. rclone同步文件的时候会重复上传已经存在的文件吗?
不会,rclone默认会对比源端和目标端文件的大小、修改时间,只有两个参数都不一致的时候才会触发传输,如果你需要更高的校验精度,可以添加--checksum参数,通过对比文件的哈希值判断是否需要传输,避免时间不一致导致的误传。
2. 批量传输的时候可以限速吗?
可以,在任意传输命令后添加--bwlimit参数即可设置限速值,例如--bwlimit 10M代表限制传输速度为10MB/s,避免传输大文件占满带宽影响其他业务正常运行,限速规则支持按时间段设置,可参考rclone官方文档配置。
3. 可以用rclone批量修改S3存储内的文件前缀吗?
可以,你可以使用rclone move命令实现批量修改前缀,例如要把my-bucket下所有old-前缀的文件移动到new/目录下,执行rclone move qicaiyun-s3:my-bucket qicaiyun-s3:my-bucket/new --include "old-*"即可,相当于批量修改了文件的路径前缀。
4. 用rclone操作七彩云对象存储需要额外付费吗?
不需要,rclone是完全开源免费的工具,七彩云对象存储仅按实际使用的存储容量、下行流量收取费用,没有额外的API调用费用,用rclone管理和用控制台、SDK管理的成本完全一致。
八、总结
整体操作流程可归纳为三个核心步骤:首先在本地设备安装rclone工具,其次完成S3兼容对象存储的远端配置,最后根据需求选择对应的rclone命令即可实现批量文件管理。对于新手来说,建议先用小容量的测试文件夹熟悉各个命令的效果,所有涉及删除、覆盖的操作务必先加--dry-run参数预览,重要数据建议开启七彩云对象存储的版本控制功能,即使出现误操作也可以快速恢复历史版本。如果需要长期批量管理文件,还可以将rclone命令写入定时任务,实现自动备份、自动同步等自动化操作。
需要稳定、兼容 S3 的对象存储?
七彩云对象存储适合图片、视频、大文件下载、静态资源托管和开发者接入。
访问七彩云官网