Найти в Дзене
ViiKo

Как быстро скопировать данные из Google Drive в Яндекс Диск

Оглавление

Это инструкция как быстро скопировать много данных их GoogleDrive в Яндекс диск или на локальный компьютер. Она написана для людей с минимальными техническими знаниями (что такое консоль). Всем остальным будет проще через графический интерфейс.

Для копирования нам понадобится rсlone (https://rclone.org/). Простой и легкий, но очень мощный инструмент. Из коробки умеет работать со всеми видами хранилищ данных и протоколов доступа.

Что будет ниже

Инструкция получилась длинная. Ниже содержание. При необходимости переходите в нужный раздел. В разделах есть дубли текста, это сделанно намерненно, чтобы можно было пропускать не интересные не теряя важную информацию.

  • Инструкция по установке
  • Как добавить свой Google Drive?
  • Как добавить свой Яндекс Диск?
  • Как запустить копирование из Google Drive напрямую на Яндекс Диск?
  • Как запустить копирование из Google Drive на локальный диск?
  • Как проверить, что все скопировалось корректно?
  • Полезные ссылки

Инструкция по установке

Есть два основные варианта установки через менеджер пакетов на вашей ОС и через инструкцию на официальном сайте. Если вы знаете, что такое менеджер пакетов, то лучше через него. Если нет, добро пожаловать на сайт.

Linux (ubuntu) через apt-get

sudo apt-get install rclone

MacOS

brew install rclone

Прочие ОС или без использования менеджера пакетов

Качаем нужную версию и устанавливаем по инструкции с официального сайта https://rclone.org/downloads/

* Обратите внимание! Разные версии для Inte/AMD и ARM - M1

Как добавить свой Google Drive?

Процедура не очень тривиальная, поэтому много картинок по шагам.

Открываем консоль, набираем "rclone config"

rclone config

No remotes found - make a new one

n) New remote

... (было много текста, убрал, далее по аналогии)

Выбираем "n" - новая конфигурация

n/s/q> n

Вводим имя конфигурации. Для удобства "gdrive-1"

name> gdrive-1

Выбираем тип хранилища. В нашем случае это Google Drive. Поэтому пишет "drive"

Storage> drive

Нас просят ввести "Option client_id" - пропускаем, просто нажимаем "Enter"

Option client_id.

...

Enter a string value. Press Enter for the default ("").

client_id>

Нас просят ввести "client_secret" - пропускаем, просто нажимаем "Enter"

Option client_secret.

...

Enter a string value. Press Enter for the default ("").

client_secret>

Нас просят выбрать вариант доступа. Рекомендую "Read-only" - это вариант 2

Option scope.

Scope that rclone should use when requesting access from drive.

...

2 / Read-only access to file metadata and file contents.

...

scope> 2

Нам предлагают указать "Option root_folder_id"- пропускаем, просто нажимаем "Enter"

Option root_folder_id.

...

Enter a string value. Press Enter for the default ("").

root_folder_id>

Нам предлагают указать "Option service_account_file"- пропускаем, просто нажимаем "Enter"

Option service_account_file.

...

Enter a string value. Press Enter for the default ("").

service_account_file>

Нам предлагают поменять дополнительные конфигурации, выбираем нет ("n")

Edit advanced config?

y) Yes

n) No (default)

y/n> n

Нам предлагают автоматическую конфигурацию "Use auto config?". Выбираем нет ("n"). Это важный момент! В противном случае будет открыт браузер по умолчанию. Это вариант подойдет только для GUI, выбранный нами более универсален. Подойдет для серверов. Поэтому выбираем его.

Use auto config?

...

y/n> n

...

https://accounts.google.com/o/oauth2/auth?access_type=offline&client_id=156.apps.googleusercontent.com&redirect_uri=urn%3Aietf%3Awg%3Aoauth%3A2.0%3Aoob&response_type=code&scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fdrive.readonly&state=28-5A

Enter a string value. Press Enter for the default ("").

Нам дали одноразовую ссылку для аутентификации. Ее нужно скопировать и открыть в любом браузере где вам удобно. Предпочтительно, там где вы уже авторизованы в Google Drive. Это сэкономит кучу времени!

После этого выбираем нужный аккаунт и выдаем права через кнопку "Allow"

-2

Копируем код авторизации

-3

Вставляем его в rclone

config_verification_code> 4/1AX4XfWhU7-I/*(.)(.)*/XxADaBYafK0

Нам предлагают сделать диск доступным для других пользователей. Выбираем - нет ("n")

Configure this as a Shared Drive (Team Drive)?

...

y/n> n

Нам предлагают сохранить настройки. Выбирает - да ("y")

[gdrive-1]

...

y) Yes this is OK (default)

...

y/e/d> y

Вуаля! Мы это сделали. Система подтверждает создание конфигурации

Name Type

==== ====

gdrive-1 drive

Нам предлагают выбрать другие команды. Выбираем выход ("q")

e/n/d/r/c/s/q> q

Как добавить свой Яндекс Диск?

Процедура не очень тривиальная, поэтому много картинок по шагам.

Открываем консоль, набираем "rclone config"

rclone config

No remotes found - make a new one

n) New remote

... (было много текста, убрал, далее по аналогии)

Выбираем "n" - новая конфигурация

n/s/q> n

Вводим имя конфигурации. Для удобства "ydrive-1"

name> ydrive-1

Выбираем тип хранилища. В нашем случае это "Yandex Disk". Поэтому пишет "yandex"

Storage> yandex

Нас просят ввести "Option client_id" - пропускаем, просто нажимаем "Enter"

Option client_id.

...

Enter a string value. Press Enter for the default ("").

client_id>

Нас просят ввести "client_secret" - пропускаем, просто нажимаем "Enter"

Option client_secret.

...

Enter a string value. Press Enter for the default ("").

client_secret>

Нам предлагают поменять дополнительные конфигурации, выбираем нет ("n")

Edit advanced config?

y) Yes

n) No (default)

y/n> n

Нам предлагают автоматическую конфигурацию "Use auto config?". Выбираем нет ("n"). Это важный момент! В противном случае будет открыт браузер по умолчанию. Это вариант подойдет только для GUI, выбранный нами более универсален. Подойдет для серверов. Поэтому выбираем его.

Use auto config?

...

n) No

y/n> n

Option config_token.

For this to work, you will need rclone available on a machine that has

a web browser available.

For more help and alternate methods see: https://rclone.org/remote_setup/

Execute the following on the machine with the web browser (same rclone

version recommended):

rclone authorize "yandex"

Then paste the result.

Enter a string value. Press Enter for the default ("").

config_token>

Тут начинается магии! Вам нужно ввести команду "rclone authorize "yandex"" на компьютере где есть GUI. Это можно сделать как на текущем компьютере в новой консоли, так и на любом другом. Важно! На нем должен быть браузер. Оптимально, если там уже будет ваша авторизация в Яндекс.

❯ rclone authorize "yandex"

2022/03/12 11:50:33 NOTICE: If your browser doesn't open automatically go to the following link: http://127.0.0.1:53682/auth?state=_xaPZ/*(.)(.)*/LdK-jd2XEw

2022/03/12 11:50:33 NOTICE: Log in and authorize rclone for access

2022/03/12 11:50:33 NOTICE: Waiting for code...

* Данный шаг добавлен для универсальности

В этот момент откроется браузер. Вам нужно выбрать ваш аккаунт на Yandex куда будут копироваться файлы. Далее подтвердить доступ. Кнопка "Login as ..."

-4

Браузер сообщает, что операция прошла успешно. Закрываем окно браузера. Оно нам больше не потребуется.

Success!

All done. Please go back to rclone.

Возвращаемся в консоль где мы набирали "❯ rclone authorize "yandex"". В ней появится токен. Копируем его. От "{" до "}" включительно.

❯ rclone authorize "yandex"

...

Paste the following into your remote machine --->

{"access_token":"AQAYlQM_LCNxs","token_type":"bearer","refresh_token":"1:2Ge4KLBCs_O407iU:rpDvt_R-Q","expiry":"2023-03-12T11:56:09.660391+03:00"}

<---End paste

Возвращаемся в консоль где мы настраивали rclone. Вставляем полученный токен.

Option config_token.

...

config_token> {"access_token":"AQQM_LCNxs","token_type":"bearer","refresh_token":"1:2Ge4KD:560P7iU:rpat_al_aq4-Q","expiry":"2023-03-12T11:56:09.660391+03:00"}

Система просить подтвердить создание конфигурации. Отвечает ОК ("y")

y) Yes this is OK (default)

...

y/e/d> y

Вуаля! Мы это сделали. Система подтверждает создание конфигурации.

Name Type

==== ====

ydrive-1 yandex

Нам предлагают выбрать другие команды. Выбираем выход ("q")

e/n/d/r/c/s/q> q

Как запустить копирование из Google Drive напрямую на Яндекс Диск?

Для этого используется команда copy. В ней указывается откуда копировать и куда. Ниже пример копирования папки.

❯ rclone copy -v "gdrive-1:video" "ydrive-1:video"

(video - папка которую копируем, gdrive-1 и ydrive-1 названия созданных ранее конфигураций)

Если нужно скопировать весь диск, просто указываем диск. В этом случае рекомендуется копировать его не в корневую папку Яндекс Диск, а в отдельную директорию.

❯ rclone copy -v "gdrive-1:" "ydrive-1:gdrive-backup"

(gdrive-backup - папка куда копируем)

Если вы запускаете копирование на удаленном сервере настоятельно рекомендую запускать "отвязывая процесс от ssh сессии".

❯ nohup rclone copy -v "gdrive-1:video" "ydrive-1:video" > video.log &

(video.log - файл куда будет писаться история/лог)

Для просмотра истории можно воспользоваться командой tail. С флагом -f показывающим только последние строки лог файла.

❯ tail -f video.log

Если путь содержит пробелы рекомендую брать его в "" как в примерах выше.

❯ rclone copy -v "gdrive-1:" "ydrive-1:gdrive-backup"

Флаг "-v" добавляет расширенную информацию о процессе копирования. Рекомендую его добавить.

Для больших файлов (видео архивы) рекомендуется добавить флаг --drive-chunk-size 64M. Пример ниже.

❯ nohup rclone copy -v --drive-chunk-size 64M "gdrive-1:video" "ydrive-1:video" > video.log &

Добавлять "--transfers" для большинства случаев смысла нет. По умолчанию стоит 4. Вы скорее всего быстрее упретесь в ограничения Яндекс Диск. Но все индивидуально.

Как запустить копирование из Google Drive на локальный диск?

Для этого используется команда copy. В ней указывается откуда копировать и куда. Ниже пример копирования папки.

❯ rclone copy -v "gdrive-1:video" "/home/viiko/tmp/video"

(video - папка которую копируем, gdrive-1 названия созданных ранее конфигураций откуда будем копировать, /home/viiko/tmp/video полный путь к папке куда копировать данные)

Если нужно скопировать весь диск, просто указываем диск. В этом случае рекомендуется копировать его не в корневую папку Яндекс Диск, а в отдельную директорию.

❯ rclone copy -v "gdrive-1:" "/home/viiko/tmp/video"

Если вы запускаете копирование на удаленном сервере настоятельно рекомендую запускать "отвязывая процесс от ssh сессии".

❯ nohup rclone copy -v "gdrive-1:video" "/home/viiko/tmp/video" > video.log &

(video.log - файл куда будет писаться история/лог)

Для просмотра истории можно воспользоваться командой tail. С флагом -f показывающим только последние строки лог файла.

❯ tail -f video.log

Если путь содержит пробелы рекомендую брать его в "" как в примерах выше.

❯ rclone copy -v "gdrive-1:" "/home/viiko/tmp/video"

Флаг "-v" добавляет расширенную информацию о процессе копирования. Рекомендую его добавить.

Для больших файлов (видео архивы) рекомендуется добавить флаг --drive-chunk-size 64M. Пример ниже.

❯ nohup rclone copy -v --drive-chunk-size 64M "gdrive-1:video" "/home/viiko/tmp/video" > video.log &

Добавлять "--transfers" для большинства случаев смысла нет. По умолчанию стоит 4. Вы скорее всего быстрее упретесь в ограничения Яндекс Диск. Но все индивидуально.

Как проверить, что все скопировалось корректно?

Для этого используется команда check. В параметрах нужно указать где находится оригинал и куда он копировался.

rclone check -v --size-only "gdrive-1:video" "ydrive-1:video"

(video - папка которую копируем, gdrive-1 и ydrive-1 названия созданных ранее конфигураций)

При испольовании рекомендую использовать флаг --size-only. Проверка будет делаться только по размеру файлов.

После выполнения команды вы получите информаци о файлах которые отличаются и идиентичны. Пример корретного копирования ниже.

2022/03/12 09:47:06 NOTICE: Local file system at /home/viiko/tmp/video: 0 differences found

2022/03/12 09:47:06 NOTICE: Local file system at /home/viiko/tmp/video: 585 matching files

Полезные ссылки