如何使用终端从Google驱动器下载文件夹?


59

我想使用终端从我的Google驱动器下载文件夹吗?有什么办法吗?我尝试了这个:

$ wget "https://drive.google.com/folderview?id=0B-Zc9K0k9q-WWUlqMXAyTG40MjA&usp=sharing"

但它正在下载此文本文件:folderview?id=0B-Zc9K0k9q-WdEY5a1BCUDBaejQ&usp=sharing。有什么方法可以从终端下载google drive文件夹吗?



我已经检查了它们,但它们无法处理Google电子表格。由于我需要访问电子表格并ocamlfuse可以处理此问题,因此我考虑在每次需要它们时都下载它们,尽管在安装方面花费了很多时间。但是我别无选择。
user22180 2014年

将文件夹设置为“互联网上的任何人都可以找到并查看”,然后你就可以下载文件,wget https://googledrive.com/host/file_id你这是wget https://googledrive.com/host/0B-Zc9K0k9q-WdEY5a1BCUDBaejQ。解决方案在这里更详细地说明
Paul Rougieux '16

在这段时间内有任何新的答案吗?我们在下面有一个选择。
Matan

Answers:


48

我可以使用以下命令下载公共共享文件:

$ wget --no-check-certificate 'https://docs.google.com/uc?export=download&id=FILEID' -O FILENAME

FILEID必须在哪里替换为实际的文件ID。FILENAME是将存储下载内容的路径/文件名。

请注意,您不能使用folderid而不是fileid。我在文件夹视图中使用过视图源,在其中可以找到以下HTML <div id="entry-0B0jxxycBojSwVW...。以开头的字符串0B是fileid。


4
这对我来说很棒!只需改用drive.google.com
thouliha 2015年

由于文件很大,因此我一直收到Google病毒扫描程序警告(无法扫描)。我没有找到解决此问题的方法。但是,我意识到我可以简单scp地将文件传输到我的服务器(需要下载)
Matthias

2
这不适用于谷歌驱动器了……
loretoparisi 17-4-10

2
这不适用于较大的文件。堆栈溢出中的这个答案就像一个咒语一样工作:stackoverflow.com/a/32742700/4773609
HG Sur

1
@HGSur我的以下回答也适用于大文件。
FrankerZ

22

对于太大的Google驱动器文件,您会收到“ Google无法提供病毒扫描”错误消息,这是我使用的解决方案:

首先,尝试在此处下载文件(遵循上述步骤):

$ wget --save-cookies 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_]+).*/Code: \1\n/p'

接下来,在获得代码(它将被输出到网页,并使用上面的sed输出)之后,使用以下URL:

$ wget --load-cookies cookies.txt 'https://docs.google.com/uc?export=download&confirm=CODE_FROM_ABOVE&id=FILEID'

-O FILENAME如果要将其写入文件,请添加到上一个wget语句以指定文件名。


这就像一个魅力!如果添加--content-配置的wget会自动给该文件的正确名称
瓦利德哈姆拉

8

一个较新的,开源的多平台客户端,写在围棋称为驱动器是相当不错,功能全面,并且还正在积极发展。

例子

pull命令从本地不存在的Google云端硬盘下载数据,并删除Google云端硬盘上不存在的本地数据。在不带任何参数的情况下运行它,以从当前路径中提取所有文件:

$ drive pull

还支持比赛匹配

$ cd ~/myDrive/content/2015
$ drive pull --matches vines docx

有关更多示例,请参见上面的链接,这些只是冰山一角。


1
自2017
Mateusz Konieczny

是的,但是它仍然有效,并且下载整个目录是最好的解决方案:drive pull 'Colab Notebooks/sorted/models/resnet-101-90.9-max-acc'。其他方法是一个痛苦的屁股。
Avio

7

wget只能处理直接链接,但这不是这里的主要问题。Google云端硬盘希望您先进行身份验证,然后再下载文件。这意味着您将必须使用网络浏览器下载文件。终端有一些Web浏览器,以lynx为例。

如果您选择公开共享文件(以便任何人都可以下载),则可以使用众多Google云端硬盘永久链接服务之一。我相信这些应该产生可以与wget一起使用的链接。这是我在搜索信息时发现的两个列表:http : //gdriveurl.com/ http://gdurl.com/

假设您正在运行Linux,那么可能值得研究一下Google Drive的开源客户端


尝试访问驱动器时,lynx显示“重定向”超过5分钟。“ Google云端硬盘永久链接”是可以的,但我不想与所有人共享。我已经使用过GriveOcamlfuse但他们无法访问电子表格
user22180 2014年

证实了“下载”从gdriveurl链接与wget的工作
兰德尔

关于开源客户端的建议:从我使用gdrive客户端和类似的名为rclone的实用程序的经验来看,我对rclone有更好的体验。
7yl4r

7

ubuntu 17.04存储库中有一个巨型程序,名为:rclone

$ sudo apt update && sudo apt install rclone

$ rclone config --> than follow the steps to setup your gdrive

现在,您可以rclone复制并同步所需的所有内容。该项目支持各种云。

$ rclone sync /home/<usrname>/Desktop/yourfolder gdrivename:yourfolder

[1]:https://rclone.org

(顺便说一句,我上传了约600GB的内容,并在数小时内将rclone从gdrive转移到gdrive,从gdrive转移到了ubuntu,从ubuntu转移到了gdrive。

https://forum.rclone.org/t/can-copy-between-google-drive-accounts-without-download-and-upload-files/969/8


5

如果您使用的是Firefox,可以尝试安装cliget插件。对于您要下载程序的每个文件,请显示curl,wget或aria2直接链接以下载该文件。我用它通过ssh将文件下载到其他计算机上,因为直接下载到远程计算机然后从计算机上载该文件比我快得多。这也适用于保管箱,gdrive等。


5

您可以使用开源Linux / Unix命令行工具gdrive

要安装它:

  1. 下载二进制文件。例如,选择一种适合您的体系结构的gdrive-linux-x64

  2. 将其复制到您的路径。

    sudo cp gdrive-linux-x64 /usr/local/bin/gdrive;
    sudo chmod a+x /usr/local/bin/gdrive;
    

要使用它:

  1. 确定Google云端硬盘文件夹的ID。为此,请使用drive.google.com网络客户端进入要下载的文件夹。现在查看浏览器地址栏中的URL,它将显示类似的内容https://drive.google.com/drive/folders/0B7_OwkDsUIgFWXA1B2FPQfV5S8H。获取最后一个字符串/,并将其复制到剪贴板。那是文件夹的ID。

  2. 下载文件夹。当然,请在以下命令中使用文件夹的ID。

    gdrive download --recursive 0B7_OwkDsUIgFWXA1B2FPQfV5S8H
    

首次使用时,该工具将需要获得对Google Drive API的访问权限。为此,它将为您显示一个链接,您必须在浏览器中访问该链接,然后您将获得验证码,以将其复制并粘贴回该工具。然后下载将自动开始。没有进度指示器,但是您可以在文件管理器或第二个终端中观察进度。

来源: Tobi在stackoverflow.com问题中的评论。答案取自我那边的类似答案


4

从下面的链接下载二进制文件

chmod +x <binary>
./drive download id

它将生成验证码链接。点击链接,并允许访问gdrive并从浏览器复制验证码。贴上

这个对我有用

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.