使用 wget 从谷歌驱动器下载文件

Posted

技术标签:

【中文标题】使用 wget 从谷歌驱动器下载文件【英文标题】:Download a file from google drive using wget 【发布时间】:2016-09-24 01:03:17 【问题描述】:

我想将在这个地址可以查看的文件下载到 linux 远程:

https://drive.google.com/file/d/0Bz7KyqmuGsilT0J5dmRCM0ROVHc/view?usp=sharing

我希望我可以通过 wget 做到这一点。

我试过了

wget https://drive.google.com/file/d/0Bz7KyqmuGsilT0J5dmRCM0ROVHc/vgg16_weights.h5

响应是 404。

是否可以wget 谷歌驱动文件?如果是这样,提供的途径是什么?如果没有,是否有任何替代方案(bash 或其他),这样我就可以避免将文件下载到本地并将其传输到远程?

【问题讨论】:

阅读这个早期答案***.com/a/25033499/2666859 其他人的信息,您可以在这里使用 CURL 看到我的答案(2018 年 3 月更新):***.com/a/49444877/4043524 wget/curl large file from google drive的可能重复 【参考方案1】:

将您的文件 ID 插入此 URL (https://drive.google.com/uc?export=download&id=),然后用引号将 URL 括起来,这样 Bash 就不会误解 &,如下所示:

wget "https://drive.google.com/uc?export=download&id=0Bz7KyqmuGsilT0J5dmRCM0ROVHc"

参考here。

【讨论】:

如果文件很大,Google 云端硬盘会添加安全警告。然后给定的解决方案不再起作用。有人对此有解决方案吗? 对于那些使用curl 的人,上述方法也可以使用,例如curl -L -o file.out 'https://drive.google.com/uc?export=download&id=0Bz7KyqmuGsilT0J5dmRCM0ROVHc'。请注意,跟踪 Google 的重定向需要 -L 命令行选项。 不再适用于小文件。给我一个 404 @yazfield 试试这个脚本:id=$(echo $1 | cut -d "=" -f2) url=$(echo "https://drive.google.com/uc?export=download&id="$id) wget "$url" -O $2 并使用原始驱动器链接(不是 ID,而是完整的 URL)加上输出文件名运行。 当文件出现此警告“超出 Google 可以扫描的最大大小。您仍要下载此文件吗?”时不起作用例如:drive.google.com/a/broadinstitute.org/…【参考方案2】:

我发现的最短路径下载大文件

git clone https://github.com/chentinghao/download_google_drive.git
cd download_google_drive/
python download_gdrive.py FILE_ID DESTINATION_PATH

仅查看权限,需要 FILE_ID 和 DESTINATION_PATH(指定文件名)。截至 2019 年 11 月 12 日,它现在正在工作,并且一直是 for more than a year。

另一个解决方案是googleapiclient。它使您能够自动下载/上传具有其 id 的私有文件。

注意:还要确保该文件是公开共享的,而不是与群组或组织内部共享

【讨论】:

它在 2021 年 7 月有效,应该添加上述示例,因为它会使事情更清楚。我对 DESTINATION_PATH 感到困惑我只是添加了路径而不是 file.extension【参考方案3】:

首先,点击右上角的分享按钮,将权限设置为allow anyone with the link can view

点击左侧角文件->下载为->PDF文档(.pdf),开始通过浏览器下载。

在下载器中找到网址,chrome在chrome://downloads/

我写这个答案时的 URL 链接是 https://docs.google.com/document/export?format=pdf&id=xxx&token=xxx&includes_info_params=true

我可以通过 wget 下载为 pdf wget -O xxx.pdf "https://docs.google.com/document/export?format=pdf&id=xxx"

【讨论】:

【参考方案4】:

这对我有用: https://www.matthuisman.nz/2019/01/download-google-drive-files-wget-curl.html 如果文件大于 100MB,Google 会显示警告,因此这种情况应单独处理。作者展示了如何做到这一点,并提供了自动化它的脚本:https://github.com/matthuisman/gdrivedl

【讨论】:

谢谢,gdrivedl 的工作就像一个魅力!

以上是关于使用 wget 从谷歌驱动器下载文件的主要内容,如果未能解决你的问题,请参考以下文章

使用命令行从谷歌驱动器下载共享文件的最快方法是啥? [关闭]

是否可以在不先将对象作为文件保存到谷歌驱动器的情况下从谷歌 colab 下载对象作为文件?

sh 仅使用wget仅下载google驱动器文件wget在bash命令行下载谷歌网盘(狗哥网盘)上的文件

是否可以使用 reactjs 从谷歌驱动器获取文件?

javascript:从谷歌驱动器播放文件

R如何使用R从谷歌驱动器读取文件