[Entware] rclone - работаем с облачными хранилищами

Используем пакеты, расширяющие возможности оборудования
Аватара пользователя
Zyxmon
Администратор
Сообщения: 1546
Зарегистрирован: 09 авг 2015, 14:33

Сообщение Zyxmon » 30 май 2016, 14:06

rclone это кроссплатформенная утилита для работы с облачными хранилищами. Поддерживаются -
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:
putty2.jpg

После этого на компе вводим 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. Должны получить:
succ.png

Можем выйти из 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 позволяет синхронизировать между собой и два облачных хранилища. Отметим тут, что синхронизация всегда проводится в одну сторону.
У вас нет необходимых прав для просмотра вложений в этом сообщении.

mazhor
Сообщения: 29
Зарегистрирован: 06 окт 2015, 14:52

Сообщение mazhor » 17 авг 2018, 10:59

День добрый.
Подскажите как ей правильно пользоваться.
Я прочитал и сам попробовал, что синхронизация только в одну сторону.
И получается если в крон поставить первым синхронизацию гугл с локальным, то положив файл на локальном, rclone его стирает. На оборот тоже самое, но там хоть в корзине потом можно найти. Когда файл есть и там и там, то проблем нет.
Это так и задумано?
В таком варианте получается, что он больше для бэкапов подходит.
Я всё правильно понимаю принцип или ошибаюсь?

Ставлю под ubuntu. Пробовал встроенный gnome, там чисто ссылка получается. При отсутствии интернета, документы, получается тоже не доступны. Пробовал Grive2, но бегло.
Не понравилось сразу, что документы созданные в гугл он не видит. Rclone их видит и копирует на локальный как wordовские. Но синхронизация, не могу понять, за чем команды sync, хватило бы одной copy.

Аватара пользователя
Zyxmon
Администратор
Сообщения: 1546
Зарегистрирован: 09 авг 2015, 14:33

Сообщение Zyxmon » 17 авг 2018, 20:24

mazhor писал(а):Источник цитаты Я прочитал и сам попробовал, что синхронизация только в одну сторону.

Так и задумано.


Вернуться в «Entware/Qnapware/Optware/Zyxware - обсуждаем репозитории пакетов»

Кто сейчас на конференции

Всего 2 посетителя :: 1 зарегистрированный, 0 скрытых и 1 гость (основано на активности пользователей за последние 5 минут)
Больше всего посетителей (121) здесь было 18 май 2016, 18:19

Сейчас этот форум просматривают: Yandex [Bot] и 1 гость