如何在 Linux 中使用链接下载 Google Drive 文件夹

Sud*_*dha 6 linux curl wget python-3.x gdrive

我有一个共享的谷歌驱动器文件夹链接(互联网上任何有此链接的人都可以查看),如下所示:https: //drive.google.com/drive/folders/1i_c8LhSLf-LttV-UOMDcY4rLAalxxxx ?usp=sharing

我想使用任何 wget/CURL/任何 python 包下载。

我已经尝试过下面的方法,但它不起作用。

 curl -L "https://drive.google.com/uc?id=1i_c8LhSLf-LttV-UOMDcY4rLAalkcayn&export=download" > test.tar.gz
Run Code Online (Sandbox Code Playgroud)
import gdown
import time
url='https://drive.google.com/uc?id=1i_c8LhSLf-LttV-UOMDcY4rLAalkxxxx'
output='/data/test/test.zip'
time.sleep(100)
gdown.download(url, output, quiet=False)
Run Code Online (Sandbox Code Playgroud)

错误:

Permission denied: https://drive.google.com/uc?id=1i_c8LhSLf-LttV-UOMDcY4rLAalkcayn
Maybe you need to change permission over 'Anyone with the link'?
Run Code Online (Sandbox Code Playgroud)

以下命令适用于文件,但不适用于文件夹

wget --no-check-certificate 'https://docs.google.com/uc?export=download&id=11e85AnMEGEjrxPuewlmeg-ABOZ8asdf' -O test
Run Code Online (Sandbox Code Playgroud)

提前感谢您的帮助!

Sol*_*ero 7

更新:

现在文件夹下载功能位于主gdown包中,因此只需执行以下操作

  1. 通过点安装
pip install gdown
Run Code Online (Sandbox Code Playgroud)
  1. 在Python中使用它:
import gdown
gdown.download_folder(url, quiet=True)
Run Code Online (Sandbox Code Playgroud)

使用“gdown”

gdown是一个很棒的应用程序,可以从 gdrive 下载单个文件,只需要文件 ID 或链接,但是github 上有几位伟大的思想家受到启发,实现了文件夹下载功能。

实际上,这个功能的状态可以在gdown:90 github PR中查看。

您可以使用它,因为它的实现几乎完美(存在文件夹中最多只能下载50 个文件的问题):

  1. folder_download通过 pip安装具有开发功能的 gdown :
import gdown
gdown.download_folder(url, quiet=True)
Run Code Online (Sandbox Code Playgroud)
  1. 现在我们需要gdown.download_folder在 python3 shell 中运行函数(因为未实现对文件夹下载的 cli 支持):

$ python3

pip install git+https://github.com/giuliano-oliveira/gdown_folder.git
Run Code Online (Sandbox Code Playgroud)

使用您自己的gdrive_folder_link字符串格式'https://drive.google.com/drive/u/1/folders/{id}'(其他未检查)。

笔记:

  • 您可能需要注册 gdown 应用程序。
  • 另外,请记住,从文件夹下载的最大元素数为 50,因为通过 gdrive 请求 API 获取所有项目的相关信息存在内部问题。
  • 您可能需要创建目标文件夹名称