rclone 使用指南:服务器文件上传到 Google Drive
简介
rclone 是一个命令行工具,支持在服务器与各类云存储之间传输文件。本文介绍如何配置
rclone 并将服务器文件上传到 Google Drive,远程名称统一使用 sai。
一、安装
Linux 服务器
sudo apt install rclone -y
|
或使用官方脚本:
curl https://rclone.org/install.sh | sudo bash
|
macOS 本地电脑
二、配置授权
服务器通常没有浏览器,无法直接完成 OAuth 授权。推荐在本地电脑完成授权,再将配
置文件复制到服务器。
第一步:本地电脑配置
按提示操作:
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
|
第四步:服务器上验证
能看到 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 |
查看当前配置:
七、常见问题
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
|