前言
使用浏览器、或FDM、wget、curl等下载工具,从 Google Drive 下载大文件时经常会遇到中断或下载失败的情况,这一般是由于网络不稳定、Google Drive 的限制、或文件太大导致。
虽然使用 gdown 能一定程度避免上述问题,但对于非常大的文件或下载次数较多的文件,可能会受到 Google Drive 的 API 限制。
因此本文介绍使用rclone下载工具进行下载。它是一个命令行程序,用于管理和同步云存储,可以用于从 Google Drive 下载大文件,并且对大文件的下载非常稳定
重要的事情说三遍
使用前,请自行解决科学上网问题,需同时支持浏览器、和shell/cmd代理访问google
使用前,请自行解决科学上网问题,需同时支持浏览器、和shell/cmd代理访问google
使用前,请自行解决科学上网问题,需同时支持浏览器、和shell/cmd代理访问google
测试shell代理访问google方法
配置完代理后,shell中输入以下命令,若能正确返回html代码,则代理配置OK。使用ping测试是行不通的
curl google.com
安装rclone
请前往官网下载对应系统的安装包,如下图所示 https://rclone.org/downloads/
配置client-id
请参考以下链接中内容,在Google cloud中配置自己的client-id
https://rclone.org/drive/#making-your-own-client-id
虽然不配置也行,但rclone默认的client-id使用人数太多,下载速度会偏慢。替换成自己的可以大幅提升速度
配置 rclone 访问 Google Drive
请参考以下链接中内容,配置 rclone 访问 Google Drive
https://rclone.org/drive/#configuration
首次使用 rclone 访问 Google Drive 时,需要进行配置:
- 启动配置命令
rclone config
- 创建新的 remote
你会看到如下选项,选择 n 来创建新的 remote:
No remotes found - make a new one
n) New remote
s) Set configuration password
q) Quit config
n/s/q> n
- 命名 remote
选择一个名称,比如 gdrive:
name> gdrive
- 选择 Google Drive 作为存储类型
在下一个菜单中选择 Google Drive
Type of storage to configure.
...
13 / Google Drive\ "drive"
...
Storage> 13
- 使用默认设置:
在接下来的几个选项中,可以按 Enter 来选择默认选项。需要特别注意以下几项:
- Client ID 和 Client Secret:替换成上面步骤中自己生成的Google cloud
- Scope:选择 1,只授予对 rclone 访问 Google Drive 的基本权限。
- Root Folder ID:直接按 Enter。
- Service Account File:直接按 Enter。
-
进行身份验证:
接下来,rclone 会提示你打开一个浏览器,登录 Google 帐户并授权 rclone 访问你的 Google Drive。授权后,会生成一个验证代码,将其复制并粘贴回终端。
如果你连接的是远程服务器,没有界面能打开浏览器。可以在shell中选择另外一个选项,它会给你提供一个额外命令,将额外命令粘贴到另外一台有浏览器的电脑shell中,进行授权后,将access_token粘贴回远程服务器即可 -
完成配置
如果一切顺利,你会看到成功添加 remote 的提示。你可以通过以下命令验证配置:
rclone lsd gdrive:
这将列出你 Google Drive 根目录中的所有文件夹
rclone lsf gdrive:
这将列出你 Google Drive 中的所有文件
使用 rclone 下载自己的文件
rclone copy gdrive:path/to/file /path/to/local/dir --drive-chunk-size=64M
- gdrive是前面 rclone 配置连接 Google Drive,你自定义的名字,替换成你自己的
- path/to/file 是文件在 Google Drive 上的路径
- /path/to/local/dir 是你想保存文件的本地路径
- –drive-chunk-size=64M 可以帮助提升大文件下载的稳定性
使用 rclone 下载共享的文件
下载别人共享的文件或文件夹,你需要获取共享文件的 文件 ID 或 文件夹 ID
假设共享链接如下:
https://drive.google.com/file/d/1abcD2EFGHIJ3KLmnopQRstUV4w/view?usp=sharing
在这个链接中,1abcD2EFGHIJ3KLmnopQRstUV4w 是文件的 ID。
下载共享文件
rclone copy gdrive: /path/to/local/directory --drive-shared-with-me --drive-root-folder-id 1abcD2EFGHIJ3KLmnopQRstUV4w -P
这会将文件下载到 /path/to/local/directory
- –drive-shared-with-me 参数用于过滤,显示共享给你的内容
- –drive-root-folder-id 参数指定要下载的具体文件夹或文件
- -P 显示下载的进度
下载共享文件夹
rclone copy gdrive:path/to/directory /path/to/local/directory --drive-shared-with-me --drive-root-folder-id 1abcD2EFGHIJ3KLmnopQRstUV4w -P
这会将文件下载到 /path/to/local/directory
- path/to/directory 是文件夹在 Google Drive 上的路径
获取该路径方式
rclone lsd gdrive: --drive-shared-with-me
这将列出你 Google Drive 中所有共享给你的文件夹
rclone lsf gdrive: --drive-shared-with-me
这将列出你 Google Drive 中所有共享给你的文件