Загрузка большой папки с Google Диска

Загрузка большой папки с Google Диска

Я хочу написать скрипт для скачиванияэта папкаиз Google Drive. Скрипт предназначен для неопытных пользователей UNIX, поэтому я не хочу использовать ничего, кроме curl или wget. Я видел решения с fileid, но мне не удалось получить fileid в моем случае.

Удалось ли кому-нибудь скачать папки с Google Диска?

Вот решения, которые я попробовал:

решение1

Самое простое современное решение (2021), которое я нашел для загрузки больших папок с Google Диска, — это gdrive:

http://github.com/prasmussen/gdrive

gdrive download --recursive --skip <file_id>

где <file_id>находится идентификатор, который вы получаете из URL папки. Не нужно ничего настраивать, он уже запросит у вас ваши учетные данные и т.п.

Флаг --skipполезен для больших папок, поскольку загрузка может в какой-то момент прерваться. Затем вы повторно запускаете команду и --skipона будет действовать как rsync.

На данный момент --skipявляется относительно новым флагом и доступен при установке gdriveчерез Go. Если в вашей системе gdriveего нет, попробуйте то же самое без --skip. Затем, если он вам действительно нужен, установите его, go getкак описано на странице github readme.

решение2

Я написал код Python с использованием библиотеки PyDrive, который может рекурсивно извлекать подпапки и файлы внутри родительской папки. Используя идентификаторы файлов, я затем сгенерировал скрипт bash с помощью wget.

Шаг 1 Я использовал библиотеку PyDrive. Чтобы использовать эту библиотеку, вам необходимо выполнить инструкции, описанные в этомсвязь.

Шаг 2 Теперь создайте скрипт или блокнот python в том же рабочем каталоге, где вы сохранили файл «client_secrets.json». Я прикрепил блокнот ниже.

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-content-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

Связанный контент