【保姆级教程】我是如何使用 Rclone 连接并并上传文件到 Google Drive 的
这也是我在Remote科研中的一些探索,由于某些需求,我需要从服务器中下载一些大型的文件,但是在国内连接国外服务器的时候,用SSH连接都十分的不稳定,即便使用SFTP传输文件速度也只有几十KB每秒。
我发现在科学上网的时候,直接从Google Drive中下载文件的速度就很快了,即便这比较耗费流量,但是也值得了,毕竟节省了时间。接下来是我配置的过程,有一些地方可能会有遗漏,可以留言告诉我。
由于我在服务器上的权限并不多,因此不能使用sudo
,所以另辟蹊径。
curl -O https://downloads.rclone.org/rclone-current-linux-amd64.zip
unzip rclone-current-linux-amd64.zip
cd rclone-*-linux-amd64
mkdir -p ~/.local/bin
cp rclone ~/.local/bin/
echo 'export PATH=$HOME/.local/bin:$PATH' >> ~/.bashrc
source ~/.bashrc
这样即便权限不是很高,也可以在命令行中使用rclone命令了,无需sudo。
运行一下命令行启动配置流程
rclone config
就开始配置了,前面的配置都比较简单,设置名称,选择云硬盘的类型,这里我选择的是drive,中间需要输入一个Client ID以及Client Secret,会弹出来一个网址https://rclone.org/drive/#making-your-own-client-id 告诉你如何配置最后获得所需要的Client ID以及Client Secret,前面的步骤较为简单,我在下面会贴出我在配置过程中比较困难的截图:
其中第5步,需要add some scopes,这一步我找了很久,步骤如下:
然后就可以按照网站上的指示添加列出来的几个网址了。
将得到的client ID and client secret复制到rclone中即可,接下来会遇到这一步是设置访问权限,如果你希望能够读写所有文件,上传或者下载文件就可以选择第1个。
接下来的配置只要选择default选项就可以了。
然后在这一步就需要借助本地的电脑进行Google Drive授权了,在本地下载好rclone(如果是win,可以在这里选择合适的版本进行下载)之后,复制那段
rclone authorize ...
,本地的电脑就会弹出来浏览器,接着授权就可以了。
!!需要注意的是,如果你在科学上网,记得设置好代理端口,比如我在过程中遇到一个问题:当我授权完成之后,没有弹出来对应的token,报错原因是 NOTICE: Fatal error: failed to get token: Post "https://oauth2.googleapis.com/token": proxyconnect tcp: dial tcp 127.0.0.1:7890: connectex: No connection could be made because the target machine actively refused it.
这里就需要将代理的端口设置为7890,完成之后重新开始代理,重复前面的授权步骤,就可以在终端中得到token,完整的复制到服务器的终端中的config token中,就算完成了配置。
接下来就可以通过:
rclone copy file_path gyr:
rclone copy file_path gyr:Backup/
将文件上传到Drive云盘中了。