近期因传输文件需要,在服务器上配置了一下Google drive。在日常中经常使用到Google drive,但是在远程服务器上,由于直连速度的限制,如果中转Google drive的话,反而速度会更快,但Linux 系统没有官方的 Google Drive 客户端,需要通过其他的一些手段(第三方应用或者API)来上传和访问Google Drive。在配置的过程中主要参考:https://geek-blogs.com/blog/linux-upload-to-google-drive/不过按照上述教程,配置过程中仍然踩了几个坑。在这里记录一下。主要采用rclone,通过命令行指令进行配置。1. 访问https://console.cloud.google.com/
2. 创建新项目或者选择一个存在的项目
3. 在搜索栏:drive api,进入后选择并启用Google Drive API
4. 进入管理后,进入APIs&Services界面点击Credentials,创建一个新的Credential
5. 创建OAuth client ID --> 桌面应用 Desktop app
5. 创建OAuth client ID --> 桌面应用 Desktop app --> 命名 (需要开启Google账号的Two-step验证才可以使用该功能)
6. 创建完成后弹出窗口,下载下来Json文件,在Json文件中可以复制到Client ID和Client secret
6.接下来很重要的一步,在上述教程中并没有提到,如果不设置的话,还是无法使用API。需要在Audience中添加用户,将自己的Google账号邮箱添加到用户组中。User type需要为为External.
完成上述设置后,进入到服务器端的终端上
sudo apt update && sudo apt install rclone -y
3. 接下来的过程安装下述教程的配置就好,除了在需要提供Client ID和Client secret处粘贴刚刚下载的Json中的内容以外,其他保持默认选项即可。
4. 在最后会命令行中会提供一个链接,点击进去,用刚刚加入用户组的谷歌账号登录后,就完成了设置。
单个文件上传 (# 上传到 GoogleDrive 的 my_folder 目录):
rclone copy /path/to/local/file.txt gdrive:my_folder/ -P
rclone copy /path/to/local/dir gdrive:backup/dir -P
# -P : 显示上传进度和速率信息
断点续传:
rclone 自动支持断点续传(默认缓存未上传部分到 ~/.cache/rclone),若上传中断,重新执行 copy 命令即可恢复。