gdrive
d.kireevУ некоторых исследователей возникает потребность время от времени скачивать что-либо с google-диска на сервера. Причем размер этих файлов может быть достаточно большим, хотелось бы запускать выкачивание в фоне (надавно выкачивал датасет размером более 1Tb). Я как-то научился это делать с помощью запуска chrome прямо на сервере, с тех пор ко мне довольно часто обращались с просьбой помочь со скачиванием, что говорит об актуальности задачи. Но недавно у меня сломались X-ы, пока чинил, нашел способ сделать всё сильно проще. Дальше будет небольшой гайд.
Для этого нужно установить приложение gdrive, что можно сделать одной командой:
GOPATH=/media3/d.kireev/gdrive PATH=/media2/d.kireev/usr/local/go-1.12.6/bin:$PATH go get github.com/prasmussen/gdrive
Здесь и далее заменяйте
/media3/d.kireev/gdrive
на путь до директории, куда хотите установить приложение.
После успешного выполнения команды у вас появится приложение gdrive по пути /media3/d.kireev/gdrive/bin/gdrive (можно добавить в .bashrc строчку export PATH=/media3/d.kireev/gdrive/bin:$PATH, чтобы не писать полный путь до него каждый раз).
Теперь о том, как использовать:
Получаем ссылку на файл (см. скриншот) вида:
https://drive.google.com/open?id=1vsRjICTk9WSfDvQbIjwGareok1Sluv_z
Нам нужна та часть, что стоит после
?id=
, в этом примере:
1vsRjICTk9WSfDvQbIjwGareok1Sluv_z
Переходим в директорию, куда хотим выкачать файл и прописываем команду:
/media3/d.kireev/gdrive/bin/gdrive download 1vsRjICTk9WSfDvQbIjwGareok1Sluv_z
В первый раз приложение попросит вас авторизоваться: перейти по ссылке, которая появится в терминале; авторизовать приложение; скопировать появившийся токен в терминал.
После этого начнется скачивание файла.
Если хотите скачать целую директорию, то надо добавить флаг
--recursive
при вводе команды
gdrive download
Вообще, у них неплохой хелп, в котором можно найти способ залить файлы с сервера на google-диск и остальной функционал.
Ну вот пожалуй и всё, надеюсь, что кому-нибудь да пригодится 😊