我想写一个脚本来下载这个文件夹来自谷歌云端硬盘。该脚本针对非专家 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