Как загрузить папку с Google диска с помощью link в Linux

#python-3.x #linux #curl #wget #gdrive

#python-3.x #linux #curl #wget #gdrive

Вопрос:

У меня есть общая ссылка на папку Google Диска (любой пользователь Интернета, имеющий эту ссылку, может просмотреть), как показано ниже, например: https://drive.google.com/drive/folders/1i_c8LhSLf-LttV-UOMDcY4rLAalxxxx?usp=sharing

Я хочу загрузить, используя любой из пакетов wget / CURL / any python.

Я пробовал ниже, и это не работает.

  curl -L "https://drive.google.com/uc?id=1i_c8LhSLf-LttV-UOMDcY4rLAalkcaynamp;export=download" > test.tar.gz
 
 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)
 

Ошибка:

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

Приведенная ниже команда работала для файлов, но не для папок

 wget --no-check-certificate 'https://docs.google.com/uc?export=downloadamp;id=11e85AnMEGEjrxPuewlmeg-ABOZ8asdf' -O test
 

Заранее спасибо за помощь!

Комментарии:

1. Например, в вашей ситуации полезен этот инструмент CLI? github.com/tanaikech/goodls#downloadfilesfromfolder

Ответ №1:

Обновить:

Теперь функция загрузки папки находится в основном пакете gdown, поэтому просто выполните следующие действия

  1. установка через pip
 pip install gdown
 
  1. используйте его в python:
 import gdown
gdown.download_folder(url, quiet=True)
 

Использование «gdown»

gdown — отличное приложение для загрузки одного файла из gdrive, для которого требуется только идентификатор файла или ссылка, но на github было несколько великих умов, которые были вдохновлены внедрением функции загрузки папок.

На самом деле, состояние этой функции можно просмотреть в gdown: 90 PR на github.

Вы можете использовать его, поскольку он реализован почти идеально (существует проблема только с 50 файлами в папке, как максимум для загрузки):

  1. установите gdown с разработанной folder_download функцией через pip:
 pip install git https://github.com/giuliano-oliveira/gdown_folder.git
 
  1. Теперь нам нужно запустить gdown.download_folder функцию в оболочке python3 (поскольку поддержка cli для загрузки папок не реализована):

$ python3

 import gdown
gdown.download_folder(gdrive_folder_link, quiet=True)
 

Используйте свой собственный gdrive_folder_link в строковом формате 'https://drive.google.com/drive/u/1/folders/{id}' (другие не были проверены).

Примечание:

  • Возможно, вам потребуется зарегистрироваться в приложении gdown.
  • Кроме того, помните, что максимальное количество загруженных элементов из папки равно 50, поскольку существуют внутренние проблемы с получением соответствующей информации обо всех элементах через gdrive request API.
  • Возможно, вам потребуется создать имя целевой папки

Комментарии:

1. Я получаю синтаксическую ошибку для `gdown.download_folder` Это была моя команда ` gdown.download_folder( drive.google.com/drive/u/1/folders /… , тихий=True)`

2. @Sulphur, синтаксическая ошибка означает неправильный ввод и т. Д. Вы должны использовать str тип для ссылки на папку gdrive. (заключите вашу ссылку в кавычки)

3. Я думаю, если файлы не имеют полностью общедоступных разрешений

4. отлично, но нет поддержки авторизации