Rclone的介绍和使用
阿里云国内75折 回扣 微信号:monov8 |
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6 |
概述
Rclone是一个命令行程序用于管理云存储上的文件。他打包了各大供应商云存储的接口提供统一的访问界面。rclone支持40多种云存储产品包括对象存储、企业和消费者文件存储、服务以及标准传输协议。Rclone符合unix POSIX规范支持于常见的shell工具比如rsync、cp、 mv、mount、ls、ncdu、tree、rm 和cat等交互Rclone使用我们耳闻能熟的语法支持shell管道支持---dry-run保护同时为了保护数据的可靠性Rclone可保留时间戳和始终进行文件验证校验和。Rclone多种文件传输协议支持SFTPHTTPWebDAVFTP和DLNA。Rclone是一个成熟的开源软件最初受rsync的启发并采用Golang编写。其文档和社区也都非常好提供广泛和友好的使用用例。
这里我们使用Rclone主要用来操作对象存储可以用来上传对象、拉取对象并可实现对象存储间的迁移。
安装
Rclone 是一个 Go 程序以单个二进制文件的形式出现。
脚本安装
要在 Linux/macOS/BSD 系统上安装 rclone请运行(确保能访问到rclone.org这个网址)
curl https://rclone.org/install.sh | sudo bash
对于 beta 安装运行
curl https://rclone.org/install.sh | sudo bash -s beta
此脚本首先检查安装的 rclone 的版本如果不需要将不会重新下载。
从预编译的二进制文件安装 Linux
获取并解包
curl -O https://downloads.rclone.org/rclone-current-linux-amd64.zip
unzip rclone-current-linux-amd64.zip
cd rclone-*-linux-amd64
复制二进制文件
sudo cp rclone /usr/bin/
sudo chown root:root /usr/bin/rclone
sudo chmod 755 /usr/bin/rclone
运行rclone config
设置基本参数根据命令提示输入即可
rclone config
使用 docker 安装
rclone 为rclone 维护一个docker 映像。这些镜像是由 docker hub 从 rclone 源基于最小的 Alpine linux 镜像自动构建的。
该:latest
标签将始终指向最新的稳定版本也可以使用该:beta
标签从 master 获取最新版本还可以使用版本标签例如:1.49.1
:1.49
或:1
。
$ docker pull rclone/rclone:latest
latest: Pulling from rclone/rclone
Digest: sha256:0e0ced72671989bb837fea8e88578b3fc48371aa45d209663683e24cfdaa0e11
...
$ docker run --rm rclone/rclone:latest version
rclone v1.49.1
- os/arch: linux/amd64
- go version: go1.12.9
启动 rclone Docker 容器时需要考虑一些命令行选项
-
您需要将主机 rclone 配置目录挂载
/config/rclone
到 Docker 容器中。由于 rclone 在其配置文件中更新令牌并且更新过程涉及文件重命名因此您需要挂载整个主机 rclone 配置目录而不仅仅是单个主机 rclone 配置文件。 -
您需要将主机数据目录挂载
/data
到 Docker 容器中。 -
默认情况下Docker 容器内的 rclone 二进制文件以 UID=0root运行。因此在运行中创建的所有文件的 UID=0。如果您的配置和数据文件驻留在具有非 root UID:GID 的主机上您需要在容器启动命令行上传递这些文件。
-
如果要访问 RC 接口通过 API 或 Web UI则需要将 设置
--rc-addr
为:5572
以便从容器外部连接到它。
源代码安装
确保您至少安装了Go 1.15。
git clone https://github.com/rclone/rclone.git
cd rclone
go build
# If on macOS and mount is wanted, instead run: make GOTAGS=cmount
./rclone version
使用
配置
首先需要配置 rclone由于对象存储系统具有相当复杂的身份验证因此它们保存在配置文件中可以通过以下命令进行配置
rclone config
基本按照命令提示输入信息即可
基本命令
通常语法是这样的
Syntax: [options] subcommand <parameters> <parameters...>
子命令列表
- rclone config - 进入交互式配置会话。
- rclone copy - 将文件从源复制到目标跳过已经复制的。
- rclone sync - 使源和目标相同仅修改目标。
- rclone bisync -两条路径之间的双向同步。
- rclone move - 将文件从源移动到目标。
- rclone delete - 删除路径的内容。
- rclone purge - 删除路径及其所有内容。
- rclone mkdir - 如果路径不存在则创建路径。
- rclone rmdir - 删除路径。
- rclone rmdirs - 删除路径下的所有空目录。
- rclone check - 检查源文件和目标文件是否匹配。
- rclone ls - 列出路径中所有对象的大小和路径。
- rclone lsd - 列出路径中的所有目录/容器/存储桶。
- rclone lsl - 列出路径中的所有对象及其大小、修改时间和路径。
- rclone size - 返回 remote:path 中对象的总大小和数量。
- rclone version - 显示版本号。
- rclone copyto - 将文件从源复制到目标跳过已经复制的。
- rclone mount - 将远程挂载为挂载点。
- rclone moveto - 将文件或目录从源移动到目标。
具体使用大家可以看每个命令的链接这里以rclone copy为例比如拉取一个对象存储文件
rclone copy remote:test.jpg /tmp/download
其中remote指的就是在config阶段配置的一个远程对象存储连接这个命令将会把图片拉取到本地目录这里注意的是本地必须指向一个目录。
选项配置
Rclone 有许多选项来控制其行为。
带参数的选项可以通过两种方式传递值 --option=value
或者--option value
。然而布尔真/假选项的行为与其他选项略有不同将选项 --boolean
设置为true
并且没有标志将其设置为false
。也可以指定--boolean=false
或 --boolean=true
。请注意这--boolean false
是无效的 - 这被解析为--boolean
并且false
被解析为 rclone 的额外命令行参数。大家可以打开这个地址来查看所有的选项参数设置。
比如在命令后跟以下参数
--bwlimit 10M
意味着将上传和下载带宽限制为 10 MiB/s。 注意这是每秒字节数而不是每秒位数。要使用单个限制请以 KiB/s 为单位指定所需的带宽或使用后缀 B|K|M|G|T|P。默认是0
不限制带宽。上传和下载带宽可以单独指定如 --bwlimit UP:DOWN
所以
--bwlimit 10M:100k
这意味着将上传带宽限制为 10 MiB/s将下载带宽限制为 100 KiB/s。任何一个限制都可以“关闭”意味着没有限制所以只限制您将使用的上传带宽
--bwlimit 10M:off
这会将上传带宽限制为 10 MiB/s但下载带宽将不受限制。
其他相关追加参数设置大家可以自行查看。
HTTP调用
web界面
Rclone 可以提供基于 Web 的 GUI图形用户界面不过目前官方说明目前属于实验阶段不过目前使用也没有出现什么大问题。基于上面讲的命令在终端中运行此命令rclone 将下载并在 Web 浏览器中显示 GUI
rclone rcd --rc-web-gui
如果您想检查更新则可以添加--rc-web-gui-update
到命令行。
如果你发现你的 GUI 坏了你可以通过 add 强制它更新--rc-web-gui-force-update
。
默认情况下rclone 将打开您的浏览器。添加--rc-web-gui-no-open-browser
以禁用此功能。
HTTP监听
如果 rclone 使用该--rc
标志运行那么它会启动一个 HTTP 服务器该服务器可用于使用其 API 远程控制 rclone。
具体使用大家可以查看Remote Control / API页面里面有具体的说明可以设置认证信息等结合web界面展示加上远程调用可以很方便的实现一些对象存储迁移等高级功能并且方便的查看执行情况启动http监听后通常可以使用的rc命令都可以通过http的方式进行调用大家可以自行尝试。
以上就是分享的关于rclone的一些基本用法以及高级使用欢迎大家共同探讨
程序之路漫漫吾将上下而求索