Rclone 简介

Rclone 是一款命令行工具,支持在不同对象存储、网盘间同步、上传、下载数据。采用 Go 语 言开发。支持本地与云存储间双向数据复制/同步,也支持不同云存储间的数据复制/同步。 常用功能

  1. COPY 文件复制,支持仅复制新的/修改的文件
  2. CHECK 检查文件的哈希值
  3. SYNC 文件同步 (单一方向,目前不支持双向)
  4. Serve 可以通过 HTTP/WebDav/FTP/SFTP/dlna 为本地或者远端文件提供服务
  5. 多线程下载到本地磁盘
  6. Chunk,将本地文件拆分后上传云端
  7. MD5/SHA1 哈希值检查保证文件完整性
  8. 保留文件时间戳
  9. Encryption 支持后端加密
  10. Cache 支持后端缓存
  11. 支持后端联合
  12. 可选的 FUSE 挂载
  13. 图形界面(试验性)

安装及配置

系统要求:

利用Rclone从阿里云OSS迁移到AWS S3_AWS

下载安装:

Linux :curl https://rclone.org/install.sh | sudo bash

Windows:​​https://rclone.org/downloads/​​ 下载解压完成之后打开 CMD 使用即可


  1. 运行 rclone config 并输入 n 新建配置文件并输入名称

利用Rclone从阿里云OSS迁移到AWS S3_云存储_02

  1. 输入存储的类型 s3

利用Rclone从阿里云OSS迁移到AWS S3_云存储_03

  1. 输入 AWS

利用Rclone从阿里云OSS迁移到AWS S3_S3_04

  1. 选择 False 输入凭证

利用Rclone从阿里云OSS迁移到AWS S3_AWS_05

  1. 输入凭证和区域

利用Rclone从阿里云OSS迁移到AWS S3_AWS_06

  1. 输入 endpoint

利用Rclone从阿里云OSS迁移到AWS S3_AWS_07

  1. 指定位置约束

利用Rclone从阿里云OSS迁移到AWS S3_OSS_08

  1. 选择 ACL 建议 private

利用Rclone从阿里云OSS迁移到AWS S3_迁移_09

  1. 选择加密方式,此次选择不加密。根据需求来决定是否加密

利用Rclone从阿里云OSS迁移到AWS S3_AWS_10

  1. KMS 选择,因为上层选择了不加密所以默认即可

利用Rclone从阿里云OSS迁移到AWS S3_迁移_11

  1. 选择存储级别,默认即可

利用Rclone从阿里云OSS迁移到AWS S3_迁移_12

  1. 高级配置选择 n 即可

利用Rclone从阿里云OSS迁移到AWS S3_OSS_13

  1. 按照以上步骤可继续添加其他云存储 以下是主流公有云的终端节点列表

AWS:

s3(宁夏):

​s3.cn-northwest-1.amazonaws.com.cn​

s3(北京):

​s3.cn-north-1.amazonaws.com.cn​

更多节点:

​https://docs.aws.amazon.com/zh_cn/general/latest/gr/s3.html​

阿里云

​https://help.aliyun.com/document_detail/31837.html​

华为云

​https://developer.huaweicloud.com/endpoint​

腾讯云

​https://cloud.tencent.com/document/product/436/6224​

利用Rclone从阿里云OSS迁移到AWS S3_AWS_14

开始迁移

Rclone 语法说明

  1. 本地到云

rclone [功能选项] <本地路径> <云存储名称:路径> [参数]

  1. 云到云

rclone [功能选项] <云存储名称:路径> <云存储名称:路径> [参数]

3. 常用的命令汇总

rclone copy - 复制

rclone move - 移动,如果要在移动后删除空源目录,请加上 --delete-empty-src-dirs 参数

rclone sync - 同步:将源目录同步到目标目录,只更改目标目录。

rclone size - 查看网盘文件占用大小。

rclone delete - 删除路径下的文件内容。

rclone purge - 删除路径及其所有文件内容。

rclone mkdir - 创建目录。 (rclone mkdir RemoteName:newbucket)

rclone rmdir - 删除目录。

rclone rmdirs - 删除指定环境下的空目录。如果加上 --leave-root 参数,则不会删除根目录。

rclone md5sum -为所有文件生成 MD5 值

rclone ncdu 一个简易文本形式的文件浏览器,用于存储桶中的文件浏览、文件和文件夹删除 等操作

rclone check 进行数据对比校验

4. 高级操作

4.1 过滤 --exclude - 排除文件或目录。 --include - 包含文件或目录。 --filter - 文件过滤规则,相当于上面两个选项的其它使用方式。包含规则以 + 开头, 排除规则以 - 开头

4.2 用法演示

4.2.1 过滤文件

--exclude "*.bak"、--filter "- .bak" 剔除所有的.bak 结尾的文件

--include ".{png,jpg}"、--filter "+ *.{png,jpg}",包含所有 png 和 jpg 文件,排除其

他文件。

4.2.2 过滤目录

--exclude "/.git/" 只排除根目录下的.git 目录。

--exclude "/{Video,Software}/" 只排除根目录下的 Video 和 Software 目录。

--include "/{Video,Software}/**" 仅包含根目录下的 Video 和 Software 目录的所 有内容

4.2.3 文件大小过滤 默认单位为 kBytes 但可以使用 M G 为单位

--min-size 过滤小于指定大小的文件。比如 --min-size 50 表示不会传输小于 50k 的文件

--max-size 过滤大于指定大小的文件。比如 --max-size 1G 表示不会传输大于 1G 的文件

4.2.4 输出优化

小文件优传输优化

--transfers int Number of file transfers to run in parallel. (default 4)

--checkers int Number of checkers to run in parallel. (default 8)

增加—transfers / –checkers,会显著改善小文件的传输速度。可根据网络情况等比 例增加到 16, 32 或 64,到一定限度后增加参数数量不会有速度改善。具体数值和 网络延迟相关

rclone copy -P -vv --transfers 32 --checkers 32 ali-oss:/test202003 aws-zhy:/test01

参考资料

Rclone 官方文档 [1] https://rclone.org/docs/