Google Drive
Amazon S3
Openstack Swift / Rackspace cloud files / Memset Memstore
Dropbox
Google Cloud Storage
Amazon Cloud Drive
Microsoft One Drive
Hubic
Backblaze B2
Yandex Disk
The local filesystem
Домашняя страница - http://rclone.org/
Утилита написана на GO и потребляет довольно много ресурсов (RAM,CPU). При использовании на слабом mipsel роутере необходимо включить swap. На НАСах работает резвее.
Установка стандартная
Код: Выделить всё
opkg install rclone
Сконфигурируем rclone для работы с яндекс диском. Запустим с параметром config: `rclone config`, выберем "n) New remote", введем произвольное имя (yasha), потом "11 Yandex Disk". Не вводим ID и Secret. Дальше самое интересное - как ответить на вопрос "Use auto config?". Ситхи могут ответить No. Тогда им потребуется установить и настроить rclone на компе и скопировать конфигурацию на роутер (в /opt/etc). Настоящие Джедаи постоянно улучшают себя через знания и тренировки. Они пробросят туннель через ssh:
После этого на компе вводим url http://127.0.0.1:538/auth (тут 538 указанный выше порт), авторизуемся на яндексе, разрешаем rclone доступ. В самом конце Вас выбросит на страницу, которую браузер отобразить не сможет. Скопируем URL этой страницы в буфер обмена. Он вида
Код: Выделить всё
http://127.0.0.1:53682/?state=XYZ1234567&code=311111
Откроем еще одно окно putty. Установим lynx (opkg install lynx), запустим lynx, нажмем клавишу G и введем наш URL. Должны получить:
Можем выйти из lynx (Q) и закрыть это окно putty. Возвращаемся к к запущенному rclone и видим, что он распознал регистрацию. Говорим, что все ОК и выходим из конфигуратора. Вот лог настройки
Код: Выделить всё
[~] # rclone config
2016/05/30 13:06:01 Failed to load config file "/opt/etc/rclone.conf" - using defaults: open /opt/etc/rclone.conf: no such file or directory
No remotes found - make a new one
n) New remote
s) Set configuration password
n/s> n
name> yasha
Type of storage to configure.
Choose a number from below, or type in your own value
1 / Amazon Cloud Drive
\ "amazon cloud drive"
2 / Amazon S3 (also Dreamhost, Ceph)
\ "s3"
3 / Backblaze B2
\ "b2"
4 / Dropbox
\ "dropbox"
5 / Google Cloud Storage (this is not Google Drive)
\ "google cloud storage"
6 / Google Drive
\ "drive"
7 / Hubic
\ "hubic"
8 / Local Disk
\ "local"
9 / Microsoft OneDrive
\ "onedrive"
10 / Openstack Swift (Rackspace Cloud Files, Memset Memstore, OVH)
\ "swift"
11 / Yandex Disk
\ "yandex"
Storage> 11
Yandex Client Id - leave blank normally.
client_id>
Yandex Client Secret - leave blank normally.
client_secret>
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
--------------------
[yasha]
client_id =
client_secret =
token = {"access_token":"AQFcz2EAAtLC80XXX-QUKHm2mdgAYYY","token_type":"bearer","expiry":"2017-05-30T13:12:56.323567+03:00"}
--------------------
y) Yes this is OK
e) Edit this remote
d) Delete this remote
y/e/d> y
Current remotes:
Name Type
==== ====
yasha yandex
e) Edit existing remote
n) New remote
d) Delete remote
s) Set configuration password
q) Quit config
e/n/d/s/q> q
Облачное хранилище на Яндексе, я назвал yasha. Работа с яшей теперь простая. Ниже показано, как получить список папок, список файлов в папке и скопировать файлы из облака. На облако файлы копируются той же командой, только нужно сначала указать локальную папку, потом облако. Лог работы:
Код: Выделить всё
[~] # rclone lsd yasha:
0 2014-12-14 06:22:02 -1 Backups
0 2014-02-18 08:14:00 -1 Entware-shared
0 2014-09-23 07:31:32 -1 FUPM
0 2012-04-26 11:07:11 -1 Music
0 2012-05-03 07:16:38 -1 Private
0 2012-04-27 06:43:39 -1 Public
0 2016-02-09 21:09:37 -1 Zdanova
0 2014-03-15 16:18:39 -1 Скриншоты
Transferred: 0 Bytes ( 0.00 kByte/s)
Errors: 0
Checks: 0
Transferred: 0
Elapsed time: 2.5s
[~] # rclone ls yasha:/Public/test
586125 Acmon03.zip
106 mnt.txt
Transferred: 0 Bytes ( 0.00 kByte/s)
Errors: 0
Checks: 0
Transferred: 0
Elapsed time: 28.3s
[~] # rclone copy yasha:/Public/test ./yasha
2016/05/30 13:24:32 Local file system at /root/yasha: Building file list
2016/05/30 13:24:59 Local file system at /root/yasha: Waiting for checks to finish
2016/05/30 13:24:59 Local file system at /root/yasha: Waiting for transfers to finish
Transferred: 586231 Bytes ( 18.96 kByte/s)
Errors: 0
Checks: 0
Transferred: 2
Elapsed time: 30.1s
Если нужно, можем добавить в конфиг другое облако. Вот добавление Гоши (google drive):
Код: Выделить всё
[~] # rclone config
Current remotes:
Name Type
==== ====
yasha yandex
e) Edit existing remote
n) New remote
d) Delete remote
s) Set configuration password
q) Quit config
e/n/d/s/q> n
name> gosha
Type of storage to configure.
Choose a number from below, or type in your own value
1 / Amazon Cloud Drive
\ "amazon cloud drive"
2 / Amazon S3 (also Dreamhost, Ceph)
\ "s3"
3 / Backblaze B2
\ "b2"
4 / Dropbox
\ "dropbox"
5 / Google Cloud Storage (this is not Google Drive)
\ "google cloud storage"
6 / Google Drive
\ "drive"
7 / Hubic
\ "hubic"
8 / Local Disk
\ "local"
9 / Microsoft OneDrive
\ "onedrive"
10 / Openstack Swift (Rackspace Cloud Files, Memset Memstore, OVH)
\ "swift"
11 / Yandex Disk
\ "yandex"
Storage> 6
Дальше все аналогично яндексу. Для некоторых облачных хранилищ rclone спросит у Вас логин и пароль и зарегистрирует Вас без использования браузера.
rclone позволяет синхронизировать между собой и два облачных хранилища. Отметим тут, что синхронизация всегда проводится в одну сторону.