
Я хочу написать скрипт для скачиванияэта папкаиз 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