Як завантажити папку з Google Диска за допомогою командного рядка
Хмарні сховища зарекомендували себе як набагато зручніші варіанти, ніж їхні альтернативи. Найвідомішим хмарним сховищем є Google Диск, і на це є свої причини. Google Диск - це безкоштовне (до 15 ГБ) рішення, яке підтримує віддалений доступ і різні формати документів. Крім того, він має інтуїтивно зрозумілий користувацький інтерфейс, що робить використання сервісу простим. Однак, з нашого досвіду, коли справа доходить до використання його розширеної функціональності, можуть виникнути труднощі.
Наприклад, ви можете захотіти завантажити папку через командний рядок, але, як показує наш досвід, це не так просто, як ви думали.
У цій статті ми допоможемо вам розібратися з процесом завантаження папки з Google Диска за допомогою інструментів командного рядка.
Ознайомлення з gdown
Якщо ви хочете завантажити загальнодоступні файли і папки зі сховища Google Drive на свій пристрій під керуванням ОС Linux за допомогою командного рядка, скористайтеся gdown.
gdown - це інструмент, розроблений для полегшення швидкого завантаження за межами графічного інтерфейсу користувача. Справа в тому, що в середовищі Linux робота через графічний інтерфейс не завжди можлива. У таких випадках gdown є корисним інструментом для отримання файлів з Google Диску за допомогою простих комбінацій командного рядка.
gdown побудовано на Python і призначено для підтримки завантаження великих файлів з Google Диску.
Щоб почати використовувати gdown, вам потрібно завантажити його. Але перш ніж ми розповімо вам, як це зробити, переконайтеся, що папка, яку ви хочете завантажити, є загальнодоступною з налаштуванням спільного доступу - “Anyone with the link”.
Тепер ми можемо приступити до встановлення gdown за допомогою програми встановлення пакетів Python (pip):
$ pip install gdownCopy
Програма пропонує кілька способів завантаження файлів з Google Диску. Один з них - використання функції обміну посиланнями на папку, яку ми хочемо завантажити:
$ gdown --folder https://drive.google.com/drive/folders/OUR-DIRECTORY-IDCopy
Тут ви безпосередньо вставляєте URL-адресу папки, щоб вказати ту, яку хочете завантажити. Крім того, ви можете використати ідентифікатор теки і вказати шлях до неї:
$ gdown --folder OUR-DIRECTORY-ID -O /home/HostZealot/Copy
У цій команді тека ідентифікується через її каталог.
Огляд gdrive
gdrive - це програма, яка підключається безпосередньо до Google Drive для завантаження і вивантаження файлів, а також керування налаштуваннями доступу до файлів.
Щоб завантажити gdrive, нам потрібно зайти на GitHub і після розпакування зберегти двійковий файл у змінній PATH (наприклад, /usr/local/bin):
$ wget https://github.com/glotlabs/gdrive/releases/download/3.9.0/gdrive_linux-x64.tar.gz [...]
$ tar -xvzf gdrive_linux-x64.tar.gz $ cp ./gdrive /usr/local/bin/Cop
wget - для завантаження файлів gdrive з GitHub; tar -xvzf - для розпакування завантажених файлів; cp - для копіювання розпакованого файлу в бінарний каталог PATH.
Отримання облікових даних Google Drive API
Щоб почати користуватися gdrive, нам потрібно створити обліковий запис Google gdrive, який, у свою чергу, потребує облікових даних Google Drive API. І ось як ви можете це зробити:
- Відкрийте Google Cloud Console
- Натисніть “Create a new project”
- Потім знайдіть Google Drive API та увімкніть його
- У меню Credentials натисніть кнопку OAuth consent screen
- Виберіть " External " і натисніть "Create"
- Вставте необхідну інформацію та натисніть "Save and continue"
- Натисніть кнопку "Add or remove scopes" і знайдіть Google Drive API
- Встановіть області та натисніть "Update", а потім натисніть "Save and continue"
- Натисніть "Add users " і додайте електронну пошту, яку ви хочете використовувати з gdrive, а потім натисніть кнопки "Add " і "Save and Continue"
- Ознайомтеся з інформацією та натисніть "Back to dashboard"
- У розділі "Credentials" натисніть "Create credentials" і виберіть "OAuth client ID"
- Виберіть десктопну версію програми та назвіть її
Це коротка версія інструкції; повна версія доступна на GitHub. Ми будемо використовувати Client ID та Client Secret для налаштування gdrive.
Робота з gdrive
Тепер, коли у нас є облікові дані, ми прив'язуємо gdrive до нашого облікового запису Google:
$ gdrive account addCopy
Далі з'явиться посилання для підтвердження доступу gdrive до Google Диску. Обов'язково підтвердьте доступ.
Тепер ми можемо завантажити папку з Google Диску:
$ gdrive files download --recursive OUR-DIRECTORY-IDCopy
Ідентифікатор теки, вказаний у команді, спрямує нас до потрібної теки для завантаження.
Наразі ми можемо завантажити за допомогою цієї команди лише файли, що містять зображення, відео та стиснуті файли; завантаження документів Google за допомогою цієї команди неможливе.
Щоб завантажити документи Google, нам потрібно трохи змінити команду:
$ gdrive files export OUR-DIRECTORY-ID /home/Baeldung/Sample.docxCopy
Ця команда експортує файли до локального шляху.
Ознайомлення з rclone
rclone - це інструмент для керування файлами, що зберігаються на хмарних платформах, зокрема на Google Диску. Для використання rclone нам потрібно встановити його за допомогою офіційного скрипта:
$ sudo -v ; curl https://rclone.org/install.sh | sudo bashCopy
У цій команді sudo означає привілеї користувача; v збільшує таймаут; curl завантажує скрипт; sudo bash запускає скрипт з привілеями суперкористувача.
Після запуску згаданої команди нам потрібно налаштувати rclone, перш ніж використовувати її. У нашому прикладі ми налаштуємо інструмент через Client ID і Client Secret з Google API.
rclone не використовує ідентифікатори для завантаження, а використовує шляхи до файлів і папок з налаштованого хмарного сховища (в нашому випадку Google Drive):
$ rclone copy gdrive: HostZealot/ /home/hostzealot/local/targetDir/Copy
У цій команді ми вказуємо шлях, куди потрібно завантажити папку Google Drive.
Тепер ви завершили завантаження папки з Google Диску.
Заключення
У цьому посібнику ми розповіли вам, як завантажити папку з Google Диска за допомогою інструментів командного рядка. Ми використовували gdown і rclone для викачування теки, враховуючи, що вони підтримують лише двійковий вміст.