rclone
更新时间:2024-04-29
概述
rclone是一个管理云存储上文件的命令行程序,也是云供应商web存储接口的一个功能丰富的替代方案。超过70种云存储产品支持rclone,包括百度智能云对象存储(BOS)、企业和消费者文件存储服务以及标准传输协议。rclone在Linux、Windows和Mac上广泛使用,第三方开发人员可以使用rclone命令行或API创建备份、恢复、和业务流程解决方案。
安装
前往这里根据使用的操作系统下载安装。
用法
配置
命令行输入rclone config
指令,下面的步骤依次为:
No remotes found, make a new one?
n) New remote
s) Set configuration password
q) Quit config
n/s/q> n
Enter name for new remote.
name> myBOS #这里为新的远程连接指定名字
Storage> 4 #选择时请确认选择Amazon S3 Compliant Storage Providers开头的选项,具体数字可能会有所改变
provider> 31 #选择时请确认选择Any other S3 compatible provider(Other),具体数字可能会有所改变
env_auth> 1
access_key_id> abcde #账户的Access Key,具体可以前往https://console.bce.baidu.com/iam/#/iam/accesslist查询
secret_access_key> ABCDE #账户的Secret Key, 具体可以前往https://console.bce.baidu.com/iam/#/iam/accesslist查询
region> 1 #请务必选择使用V4 signature的选项
endpoint> http://s3.bj.bcebos.com #兼容S3协议的BOS服务域名,不同Endpoint对应不同的S3域名,详见https://cloud.baidu.com/doc/BOS/s/xjwvyq9l4
location_constraint> #如不确定则不输入直接Enter
acl> 1 #选择你希望的权限模式,默认private
Edit advanced config?
y) Yes
n) No (default)
y/n> n
Current remotes:
Name Type
==== ====
myBOS s3
e) Edit existing remote
n) New remote
d) Delete remote
r) Rename remote
c) Copy remote
s) Set configuration password
q) Quit config
e/n/d/r/c/s/q> q #如输入确认无误,则选择q退出配置
其中的配置信息可以根据个人需要进行改动,配置之后可根据提示退出。
通用flag
--help/-h
帮助-v
显示执行时更为详细的步骤信息-vv
显示debug log定位错误--interactive/-i
执行前询问
bucket
- 查看所有的bucket:
rclone lsd myBOS:
- 创建一个名为new-bu的新bucket:
rclone mkdir myBOS:new-bu
- 删除一个名为new-bu的bucket:
rclone rmdir myBOS:new-bu
- 强制删除一个名为new-bu的bucket(当bucket里存在文件时使用):
rclone purge myBOS:new-bu
-
请注意以上创建删除操作的自定义bucket名称须满足BOS的bucket名称定义规则,即:
- 只能包含小写字母、数字和“-”
- 开头结尾为小写字母或数字
- 长度在4-63之间
- 不同bucket之间名称不能重复
-
bucket acl权限设置:
- 在rclone config 最后的advanced config里选择yes进行设置
- 所有的新建的bucket会自动按照bucket acl的权限生成,其他bucket不受任何影响
object
- 列出名为new-bu的bucket下所有的object:
rclone ls myBOS:new-bu
-
文件上传:
rclone copyto src dest
## src为需上传的文件的本地地址, dest为目标BOS位置- 具体示例如下:
rclone copyto /Users/Desktop/baidu.pptx myBOS:new-bu/baidu.pptx
- 如需从url地址直接上传至云,可使用
rclone copyurl https://example.com myBOS:new-bu
-
文件下载:
rclone copyto src dest
## src为需下载目标BOS位置, dest为目标保存地址- 具体示例如下:
rclone copyto myBOS:new-bu/baidu.pptx /Users/Desktop/baidu.pptx
- 文件删除:
rclone delete myBOS:new-bu/baidu.pptx
文件夹同步至bucket
-
文件夹同步命令为
rclone sync src dest
,src表示同步的源,dest为目标云存储位置- 例如将本地文件夹Desktop同步至new-bu:
rclone sync ~/Desktop myBOS:new-bu
- 例如将本地文件夹Desktop同步至new-bu:
-
利用flag进行特殊规则的同步措施:
--size-only
仅当源文件与目标文件大小不同时更改目标文件,无额外事务--checksum
仅当源文件与目标文件的大小或md5校验和不同时更改,无额外事务--update --use-server-modtime
不使用额外事务,修改时间变为对象上传时间,适用于许多操作,但可能错过时间戳在过去创建的文件。
清理未完成的分部上传文件
- 清理24小时前的未完成的分部上传文件:
rclone cleanup myBOS:test-bu
- 清理1小时1分钟1秒前未完成的分部上传文件,时间可调:
rclone backend cleanup myBOS:test-bu -o max-age=1h1m1s
多线程flag
-
--multi-thread-write-buffer-size=SIZE
- 设置buffer size为SIZE,默认128k
- 受磁盘读写限制可调整,推荐16k的倍数
-
--multi-thread-chunk-size=SizeSuffix
- 用于多线程传输的分块大小通常由后端设置。
- 但对于本地和smb等后端(实现了OpenWriterAt但未实现OpenChunkWriter),没有自然分块大小,此时使用该选项设置的值(默认为64Mi)。
-
--multi-thread-cutoff=SIZE
- rclone在传输大于指定SIZE的文件时会使用多线程,默认5G
- 这只适用于作为目标的受支持后端,但将适用于作为源的任何后端。
-
--multi-thread-streams=N
- 该指令设定多线程传输时使用的流数
- 设为0则禁用多线程传输,rclone默认值为4,但BOS推荐10。
- 如上flag皆为具体命令调整所用,如需永久设置,可在
rclone config
内进行到advanced config
时选择yes进行永久设置
更多用法
详见https://rclone.org/commands/
常见问题
- region步骤如选择非V4签名可能会出现中文名称文件无法在云端找到的报错。
- region一旦选择非V4,重新使用rclone config修改会无法将修改保存进config文件,需使用
rclone config file
查询具体config文件位置直接修改config文件。 - 如果遇到只能下载无法上传的情况,可能原因为使用的AKSK的权限为只读,建议检查AKSK是否具有写入权限。