Rclone — программа для работы с облачными хранилищами. Поддерживает Dropbox, Яндекс.Диск, Google Drive, и много других. Аккаунтов от каждого облачного хранилища можно использовать сколько угодно много. Управление через командную строку. Дополнительно существует GUI-оболочка.
Программа с открытыми исходниками. Есть в версиях под Linux, Mac OS, Windows и т.д.
Я использую Rclone в Elementary OS. Для установки скачал deb-пакет, его подхватил Eddy и готово. Настройка облаков происходит в виде мастера, требуется просто отвечать на вопросы.
Подключение Яндекс.Диска
Запуск мастера:
rclone config
Показывает подключенные аккаунты (или говорит, что подключенных нет) и спрашивает, что делать:
Current remotes:
Name Type
==== ====
dropbox dropbox
e) Edit existing remote
n) New remote
d) Delete remote
r) Rename remote
c) Copy remote
s) Set configuration password
q) Quit config
e/n/d/r/c/s/q> n
Ввел n
— подсоединить новый.
Задаю название для аккаунта:
name> yandex-main
Если вы собираетесь использовать один аккаунт Яндекс, то можно просто «yandex». У меня будет несколько аккаунтов. Я называю так, чтобы мне потом было понятно. По этому имени потом будет происходить обращение к аккаунту из командной строки и т.д.
Оставляю пустым:
Type of storage to configure.
Enter a string value. Press Enter for the default ("").
Выбираю 25
— Яндекс.Диск:
Choose a number from below, or type in your own value
1 / A stackable unification remote, which can appear to merge the contents of several remotes
\ "union"
2 / Alias for a existing remote
\ "alias"
3 / Amazon Drive
\ "amazon cloud drive"
4 / Amazon S3 Compliant Storage Providers (AWS, Ceph, Dreamhost, IBM COS, Minio)
\ "s3"
5 / Backblaze B2
\ "b2"
6 / Box
\ "box"
7 / Cache a remote
\ "cache"
8 / Dropbox
\ "dropbox"
9 / Encrypt/Decrypt a remote
\ "crypt"
10 / FTP Connection
\ "ftp"
11 / Google Cloud Storage (this is not Google Drive)
\ "google cloud storage"
12 / Google Drive
\ "drive"
13 / Hubic
\ "hubic"
14 / JottaCloud
\ "jottacloud"
15 / Local Disk
\ "local"
16 / Mega
\ "mega"
17 / Microsoft Azure Blob Storage
\ "azureblob"
18 / Microsoft OneDrive
\ "onedrive"
19 / OpenDrive
\ "opendrive"
20 / Openstack Swift (Rackspace Cloud Files, Memset Memstore, OVH)
\ "swift"
21 / Pcloud
\ "pcloud"
22 / QingCloud Object Storage
\ "qingstor"
23 / SSH/SFTP Connection
\ "sftp"
24 / Webdav
\ "webdav"
25 / Yandex Disk
\ "yandex"
26 / http Connection
\ "http"
Storage> 25
** See help for yandex backend at: https://rclone.org/yandex/ **
Оставляю пустыми:
Yandex Client Id
Leave blank normally.
Enter a string value. Press Enter for the default ("").
client_id>
Yandex Client Secret
Leave blank normally.
Enter a string value. Press Enter for the default ("").
client_secret>
Выбираю y
— чтобы соединение было настроено автоматически:
Remote config
Use auto config?
* Say Y if not sure
* Say N if you are working on a remote or headless machine
y) Yes
n) No
y/n> y
If your browser doesn't open automatically go to the following link: http://127.0.0.1:53682/auth
Log in and authorize rclone for access
Waiting for code...
При этом меня перебрасывает в веб-браузер, где я должен авторизоваться в Яндексе и подтвердить, что разрешаю приложению получить доступ.
Всё прошло успешно, инфа получена, подтверждаем что все правильно:
Got code
--------------------
[yandex-main]
type = yandex
token = {"access_token":"******","token_type":"beare............expiry":"2019-10-...."}
--------------------
y) Yes this is OK
e) Edit this remote
d) Delete this remote
y/e/d> y
Готово, вернулись в начало, где в списке аккаунтов появился новый. Можно выйти:
Current remotes:
Name Type
==== ====
dropbox dropbox
yandex-main yandex
e) Edit existing remote
n) New remote
d) Delete remote
r) Rename remote
c) Copy remote
s) Set configuration password
q) Quit config
e/n/d/r/c/s/q> q
С подключением Dropbox все было аналогично. Подключение Google Drive отличается очень незначительно. Пара дополнительных вопросов, где можно ничего не отвечать. Другими облаками не пользуюсь.
Синхронизация данных
У меня все данные были в облаке. Локально ничего нет.
Получение всех данных из Яндекс.Диска себе на диск:
rclone copy yandex-main: /home/d1mon/Clouds/Yandex-main
Аналогично можно поступить с аккаунтами Dropbox и Google Drive:
rclone copy dropbox: /home/d1mon/Clouds/Dropbox
rclone copy google-main: /home/d1mon/Clouds/Google-main
С хорошим интернетом получение данных происходит быстро и без проблем.
Теперь локально у себя на диске в обозначенных каталогах мы, например, что-то изменили. Чтобы засинхронизировать данные в обратном направлении:
rclone sync /home/d1mon/Clouds/Yandex-main yandex-main:
rclone sync /home/d1mon/Clouds/Dropbox dropbox:
rclone sync /home/d1mon/Clouds/Google-main google-main:
Выгрузятся только изменения.
Синтаксис:
rclone copy ОТКУДА КУДА
rclone sync ОТКУДА КУДА
Внимательнее с ОТКУДА
и КУДА
, чтобы данные передавались строго в нужную сторону.
Название аккаунта облака вводится обязательно с двоеточием. За двоеточием можно указать путь, чтобы копировать или синхронизировать данные только в указанном каталоге. Пример:
rclone copy yandex-main:dir /home/d1mon/Clouds/Yandex-main/dir
rclone sync /home/d1mon/Clouds/Yandex-main/dir yandex-main:dir
Что дальше?
Программа делает свое дело. Данные можно получать и отправлять, аккаунты любые, в любом количестве. Далее, всё в наших руках. Настраиваем, как требуется. Например, если нужно получить подобие работы стандартных облачных программ, то можно добавить нужные команды в сron. Допустим, раз в 5 минут.
И хотя при синхронизации данных с облаками я не заметил сколько-нибудь ощутимой нагрузки на свой компьютер, дергать программу чаще не вижу смысла. Ну, опять же, это для меня так. В вашей ситуации может быть по-другому.
Оболочку Rclone Browser можно установить так:
sudo add-apt-repository ppa:nilarimogard/webupd8
sudo apt update
sudo apt install rclone-browser
Выглядит она неплохо. Можно работать с уже подключенными облаками. Но само подключение не реализовано. Подключение только с помощью мастера, описанным выше способом.
В Rclone и Rclone Browser реализована довольно интересная функция монтирования. Можно любое облачное хранилище или отдельный каталог хранилища примонтировать в системе. С ним можно будет работать также, как с любым другим примонтированным диском в системе. В данном случае удобство работы будет определяться скоростью интернета. Функция очень полезна если на локальном диске мало места и полноценная синхронизация данных — непозволительная роскошь.
Выводы
В целом, Rclone — это довольно специфичная вещь. Программа классная, но она на мой взгляд не очень подходит для десктоп. Во всяком случае, если пользоваться облаками так, как я это обычно делаю. Мне просто надо, чтобы у меня были на компьютере каталоги облаков, которые всегда синхронизированы. И не важно в каком направлении. Я не хочу об этом думать. Используя Rclone и Cron синхронизации можно добиться, но есть вероятность, что она пойдет не в ту сторону и я потеряю какие-нибудь данные.
Программа Rclone идеальна если вам необходимо целенаправленно отправлять или получать данные. Это полезно при создании бекапов и т.д. Работа с множеством аккаунтов — это очень большое преимущество. Также очень полезной может оказаться функция монтирования.