Rclone 安装与使用

一. 安装 Rclone

yum install p7zip unzip -y
curl https://rclone.org/install.sh | bash

二. 配置 Google Drive

执行rclone config命令,会出现以下看似复杂其实很容易操作的信息,需要填写或选择的部分见注释:

n) New remote
s) Set configuration password
q) Quit config
n/s/q> n # 创建一个新的远程配置
name> gd # 随便取一个配置名称
Type of storage to configure.
Enter a string value. Press Enter for the default ("").
Choose a number from below, or type in your own value
1 / 1Fichier
\ "fichier"
2 / Alias for an existing remote
\ "alias"
3 / Amazon Drive
\ "amazon cloud drive"
4 / Amazon S3 Compliant Storage Provider (AWS, Alibaba, Ceph, Digital Ocean, Dreamhost, IBM COS, Minio, etc)
\ "s3"
5 / Backblaze B2
\ "b2"
6 / Box
\ "box"
7 / Cache a remote
\ "cache"
8 / Dropbox
\ "dropbox"
9 / Encrypt/Decrypt a remote
\ "crypt"
10 / FTP Connection
\ "ftp"
11 / Google Cloud Storage (this is not Google Drive)
\ "google cloud storage"
12 / Google Drive
\ "drive"
13 / Google Photos
\ "google photos"
14 / Hubic
\ "hubic"
15 / JottaCloud
\ "jottacloud"
16 / Koofr
\ "koofr"
17 / Local Disk
\ "local"
18 / Mega
\ "mega"
19 / Microsoft Azure Blob Storage
\ "azureblob"
20 / Microsoft OneDrive
\ "onedrive"
21 / OpenDrive
\ "opendrive"
22 / Openstack Swift (Rackspace Cloud Files, Memset Memstore, OVH)
\ "swift"
23 / Pcloud
\ "pcloud"
24 / Put.io
\ "putio"
25 / QingCloud Object Storage
\ "qingstor"
26 / SSH/SFTP Connection
\ "sftp"
27 / Union merges the contents of several remotes
\ "union"
28 / Webdav
\ "webdav"
29 / Yandex Disk
\ "yandex"
30 / http Connection
\ "http"
31 / premiumize.me
\ "premiumizeme"
Storage> 12 # 选择 Google Drive,注意该序列号可能会变化,看清楚自己所需
client_id> # 在启用谷歌 API 页面上生成的客户端 ID
client_secret> # 在启用谷歌 API 页面上生成的客户端 Secret
Choose a number from below, or type in your own value
1 / Full access all files, excluding Application Data Folder.
\ "drive"
2 / Read-only access to file metadata and file contents.
\ "drive.readonly"
/ Access to files created by rclone only.
3 | These are visible in the drive website.
| File authorization is revoked when the user deauthorizes the app.
\ "drive.file"
/ Allows read and write access to the Application Data folder.
4 | This is not visible in the drive website.
\ "drive.appfolder"
/ Allows read-only access to file metadata but
5 | does not allow any access to read or download file content.
\ "drive.metadata.readonly"
scope> 2 # 选择授权范围:全部、只读、读写等等
ID of the root folder
Leave blank normally.
Fill in to access "Computers" folders. (see docs).
Enter a string value. Press Enter for the default ("").
root_folder_id> # 根目录 ID,置空即可
Service Account Credentials JSON file path
Leave blank normally.
Needed only if you want use SA instead of interactive login.
Enter a string value. Press Enter for the default ("").
service_account_file> # 服务账号 JSON 文件路径,置空即可
Edit advanced config? (y/n)
y) Yes
n) No
y/n> n # 是否进入高级配置,否即可
Remote config
Use auto config?
* Say Y if not sure
* Say N if you are working on a remote or headless machine
y) Yes
n) No
y/n> n # 是否使用自动配置,否即可
If your browser doesn't open automatically go to the following link: https://accounts.google.com/o/ #打开该地址获取code
Log in and authorize rclone for access
Enter verification code> # 此步骤会出现回调 URL 链接,将此链接复制到浏览器会请求登录谷歌,并询问是否同意授权,同意后会得到 code
Configure this as a team drive?
y) Yes
n) No
y/n> n # 将配置设为团队云盘的,否即可
--------------------
[gd]
type = drive
client_id =
client_secret =
scope = drive.readonly
token = {} # 此步骤会显示最终结果,复制其中的 refresh_token 供 API 使用
--------------------
y) Yes this is OK
e) Edit this remote
d) Delete this remote
y/e/d> y # 确认结果,是
Current remotes:
Name Type
==== ====
gd drive
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 # 退出

使用以下命令可以查看配置文件路径:

rclone config file | grep rclone.conf

里面储存了读写 GoogleDrive 所需参数,其中配置名称(此例中为gd)是 Rclone 后续操作的重要标识。

三. 配置 Tencent COS

腾讯对象存储(COS)默认不包含在配置过程的选项中,可直接在配置文件中添加以下内容(去掉注释):

[cos]
type = s3 # 对象存储似乎必须是s3类型
provider = Other
acl = public-read
env_auth = false # 不从环境变量中获取密钥
access_key_id = # 腾讯云的 SecretId
secret_access_key = # 腾讯云的 SecretKey
endpoint = cos.ap-hongkong.myqcloud.com # COS域名

其中acl参数需注意,同步时会根据此设置覆盖原有权限。对于腾讯COS来说,可选值有:private私有读写(默认);public-read公有读私有写;public-read-write公有读写。

四. Rclone 常用操作

1. 列出路径下的目录或存储桶

rclone lsd [远程配置名称]:[远程目录绝对路径]
# 例如
rclone lsd gd:/image
rclone lsd cos:/image

2. 列出路径下的文件

rclone ls [远程配置名称]:[远程目录绝对路径]

3. 查看路径下文件数目和总大小

rclone size [远程配置名称]:[远程目录绝对路径]

4. 将源目录同步到目标目录

同步命令与rclone copy不同,会删除目标目录中多余的文件,--dry-run参数可预先查看哪些文件将被删除和变更,正常使用时去掉。如果是本地路径,冒号及前面的名称可去掉。

rclone sync [源名称]:[源绝对路径] [目标名称]:[目标绝对路径] --dry-run

5. 挂载远程云盘到本地文件系统

先要安装 FUSE(用户空间文件系统):

yum install fuse -y

再执行挂载命令:

rclone mount [源名称]:[源绝对路径] [本地绝对路径]
rclone mount gd:/ /mnt/gd

该命令会占用控制台,需持续运行才能正常工作,因此通常设置为后台运行方式,或服务方式。

新建服务启动脚本:

vi /etc/systemd/system/rclone.service

粘贴以下内容:

[Unit]
Description=Rclone Mount
After=network-online.target
[Service]
Type=simple
ExecStart=/usr/bin/rclone mount gd:/ /mnt/gd --allow-other --cache-dir /tmp/rclone.cache --vfs-cache-mode full --vfs-cache-max-age 72h
Restart=on-abort
[Install]
WantedBy=default.target

启动、重启、开机自启动、停止、查看服务状态:

systemctl start rclone
systemctl restart rclone
systemctl enable rclone
systemctl stop rclone
systemctl status rclone

df -h查看是否挂载成功。

6. 卸载云盘

umount /mnt/gd
# or
fusermount -qzu /mnt/gd