rclone 使用指南:服务器文件上传到 Google Drive

简介

rclone 是一个命令行工具,支持在服务器与各类云存储之间传输文件。本文介绍如何配置
rclone 并将服务器文件上传到 Google Drive,远程名称统一使用 sai


一、安装

Linux 服务器

sudo apt install rclone -y

或使用官方脚本:

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

macOS 本地电脑

brew install rclone

二、配置授权

服务器通常没有浏览器,无法直接完成 OAuth 授权。推荐在本地电脑完成授权,再将配
置文件复制到服务器

第一步:本地电脑配置

rclone config

按提示操作:

No remotes found, make a new one?
n) New remote
> n

name> sai

Type of storage> drive # 选 Google Drive 对应的编号

Google Client Id> (直接回车跳过)
Google Client Secret> (直接回车跳过)

Scope> 1 # 完整访问权限

Root folder id> (直接回车跳过)
Service Account> (直接回车跳过)

Edit advanced config? > n

Use auto config? > y # 本地电脑选 y,会自动打开浏览器授权

浏览器完成 Google 账号授权后,配置写入本地文件。

第二步:查看本地配置文件

cat ~/.config/rclone/rclone.conf

内容类似:

[sai]
type = drive
token = {"access_token":"...","refresh_token":"...","expiry":"..."}

第三步:将配置复制到服务器

# 先在服务器上创建目录
ssh your-server "mkdir -p ~/.config/rclone"

# 复制配置文件
scp ~/.config/rclone/rclone.conf your-server:~/.config/rclone/rclone.conf

第四步:服务器上验证

rclone lsd sai:

能看到 Google Drive 的文件夹列表说明授权成功。


三、基本用法

查看远端目录

# 列出顶层文件夹
rclone lsd sai:

# 列出指定文件夹内容
rclone ls sai:目标文件夹/

上传单个文件

rclone copy /path/to/file.csv sai:目标文件夹/ --progress

上传整个目录

rclone copy /path/to/dir/ sai:目标文件夹/ --progress

上传到指定 Google Drive 文件夹(通过 folder ID)

Google Drive 文件夹链接格式:

https://drive.google.com/drive/folders/1W7XrzuMDYD-E1tbJ1tAJNuBNUc8JWYNN
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
这一段就是 folder ID

上传命令:

rclone copy /path/to/dir/ sai: \
--drive-root-folder-id 1W7XrzuMDYD-E1tbJ1tAJNuBNUc8JWYNN \
--progress

四、常用场景示例

场景 1:上传当前目录下所有 gz 文件

rclone copy . sai: \
--drive-root-folder-id 1s05yk-DnLn0IFysLaQicXc417-YwwcU8 \
--include "*.jsonl.gz" \
--no-traverse \
--progress

场景 2:上传指定前缀的文件(如 sampleprofiles*)

rclone copy . sai: \
--drive-root-folder-id 1TVdXldygrU-j3YB_9M5RdOquQ2l3WamJ \
--include "sample_profiles_*.jsonl.gz" \
--no-traverse \
--progress

场景 3:后台运行,防止断连中断

nohup rclone copy . sai: \
--drive-root-folder-id 1TVdXldygrU-j3YB_9M5RdOquQ2l3WamJ \
--include "sample_profiles_*.jsonl.gz" \
--progress > rclone_upload.log 2>&1 &

查看进度:

tail -f rclone_upload.log

场景 4:逐个文件上传(当通配符不可用时)

rclone copy sample_profiles_AU.jsonl.gz   sai: --drive-root-folder-id 1TVdXldygrU-j3YB_9M5RdOquQ2l3WamJ --progress
rclone copy sample_profiles_BE.jsonl.gz sai: --drive-root-folder-id 1TVdXldygrU-j3YB_9M5RdOquQ2l3WamJ --progress
rclone copy sample_profiles_BR.jsonl.gz sai: --drive-root-folder-id 1TVdXldygrU-j3YB_9M5RdOquQ2l3WamJ --progress
rclone copy sample_profiles_US.jsonl.gz sai: --drive-root-folder-id 1TVdXldygrU-j3YB_9M5RdOquQ2l3WamJ --progress

五、常用参数说明

参数 说明
--progress 实时显示传输进度
--no-traverse 跳过遍历远端目录,上传少量文件时更快
--include "*.gz" 只包含匹配的文件
--exclude "*.log" 排除匹配的文件
--drive-root-folder-id 指定 Google Drive 目标文件夹 ID
--transfers 4 并发传输数量(默认 4)
--retries 3 失败重试次数
--log-file rclone.log 输出日志到文件

六、配置文件位置

系统 路径
Linux / macOS ~/.config/rclone/rclone.conf
Windows %APPDATA%\rclone\rclone.conf

查看当前配置:

rclone config show

七、常见问题

Q:授权 token 过期怎么办?

在本地重新运行 rclone config,选择已有的 sai 远程并重新授权,然后再次 scp
到服务器。

Q:上传速度慢?

增加并发数:

rclone copy . sai: --drive-root-folder-id xxx --transfers 8 --progress

Q:如何确认文件已上传成功?

rclone ls sai: --drive-root-folder-id 1TVdXldygrU-j3YB_9M5RdOquQ2l3WamJ