从 Google 云端硬盘下载大文件夹

从 Google 云端硬盘下载大文件夹

我想写一个脚本来下载这个文件夹来自谷歌云端硬盘。该脚本针对非专家 UNIX 用户,因此我不想使用除curl 或wget 之外的其他内容。我已经看到了带有 fileid 的解决方案,但在我的情况下我无法获取 fileid 。

有人设法从 Google 云端硬盘下载文件夹吗?

以下是我尝试过的解决方案:

答案1

我发现从谷歌驱动器下载大文件夹的最简单的最新解决方案(2021)是 gdrive:

http://github.com/prasmussen/gdrive

gdrive download --recursive --skip <file_id>

其中<file_id>id 是从文件夹 URL 获取的。无需配置任何内容,它会询问您的凭据等。

--skip标志对于大型文件夹很有用,因为下载可能会在某个时刻超时。然后,您重新运行该命令,--skip并将使其表现得像rsync.

截至目前,这是一个相对较新的标志,如果您通过 Go--skip安装则可用。gdrive如果您的系统gdrive没有它,请在不使用 的情况下尝试相同的操作--skip。然后,如果您确实需要它,请go get按照 github 自述文件页面中的说明进行安装。

答案2

我使用 PyDrive 库编写了一个 Python 代码,它可以递归地检索父文件夹内的子文件夹和文件。然后,我使用文件的 id 使用 wget 生成了一个 bash 脚本。

步骤1 我使用了 PyDrive 库。要使用此库,您必须完成本中描述的说明关联

步骤 2 现在,在保存“client_secrets.json”文件的同一工作目录中创建一个 python 脚本或笔记本。我在下面附上了笔记本。

https://gist.github.com/immuntasir/73b8e8eef7e6c9066aaf2432bebf7db0

步骤3 使用 scp,将“script.sh”复制到远程服务器。 scp ~/path/script.sh username@ip:path

步骤4 登录到删除服务器,导航到该路径。然后使用以下命令使脚本可执行。 chmod 777 script.sh 运行脚本,瞧! ./script.sh

我还写了一个教程,可以在这里找到:https://medium.com/@immuntasir/recursively-download-all-the-contents-of-a-google-drive-folder-using-python-wget-and-a-bash-script-d8f2c6b105d5

希望这可以帮助!

答案3

你的 fileId 位于你的文件夹的 url 地址上,你可以简单地运行

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

相关内容