首先使文件可公开共享然后:-
我用于小文件下载
wget --no-check-certificate 'https://docs.google.com/uc?export=download&id=FILEID' -O FILENAME
对于大文件
wget --load-cookies /tmp/cookies.txt "https://docs.google.com/uc?export=download&confirm=$(wget --quiet --save-cookies /tmp/cookies.txt --keep-session-cookies --no-check-certificate 'https://docs.google.com/uc?export=download&id=FILEID' -O- | sed -rn 's/.*confirm=([0-9A-Za-z_]+).*/\1\n/p')&id=FILEID" -O FILENAME && rm -rf /tmp/cookies.txt
但是如何在不公开共享链接的情况下做到这一点?
注意:wget 对我来说不是必须的。如果您知道任何其他软件,请推荐我,但它必须包含以下功能:-
- 基于命令行
- 下载文件恢复功能
- 轻巧便携(如果可能的话,它不是强制性的)
- 多线程下载和文件附加功能(如果可能,它不是强制性的)
虽然许多以前的方法不再有效,但我发现以下方法仍然有效(至少今天如此):
(将 FILE_ID 和 FILE_NAME 替换为 google drive 下载链接中的文件 ID,以及您要下载的文件的名称)
(最初在https://silicondales.com/tutorials/g-suite/how-to-wget-files-from-google-drive/中找到答案)
在 PATH 中的某处创建一个 bash 脚本
getgoogle
,例如 /usr/local/bin 或 ~/bin (如果您已在环境中映射它)确保在
getgoogle
通过运行保存脚本后更改其权限:用法:
getgoogle <URL|ID>
将下载 Google Drive 项目,无论您具有完整链接
URL
还是仅标识符ID
,并在下载时将其重命名为上传到 Google Drive 的文件的原始文件名。尝试查看
rclone
https://rclone.org/它有一个非常完整的功能集,基于命令行(语法与 非常相似
rsync
)并通过 OAuth支持 Google Drive 。应该正是您正在寻找的。