Мой маленький дропбокс
Jun. 27th, 2018 10:19 amТут в комментах высказались на тему хранения ряда сенситивных файлов на дропбоксе.
Поигравшись со специализированными вариантами DAV - CardDav и Caldav я понял, что эта идея не совсем бессмыслена.
Автоматическая куска файловой системы по идее позволяет решить те задачи, которые остались после того как я разобрался с контактами и календарями. (у меня есть поистине чудесное описание того, как синхронизировать адресную книгу и календарь claws mail с carddav и caldav с помощью vdirsyncer-а, но поля этого поста слишком малы, чтобы его здесь записать).
Но вот что-то подходящего решения я пока не вижу.
Что требуется:
Имеется
Задача:
Правда, надо сказать что ятут недавно ухитрился с фоссилом, который решает перечисленные задачи для файлов, для которых осмысленен контроль версий, посадить та-а-кой конфликт, что разгребаться пришлось при помощи ключиков --force. Но это, увы неизбежное свойство большеносых варваров (как писал Шумил, по всему что Коре было известно Джафар был типичнейшим бледнолицым).
Рассмотренные варианты:
Пока других вариантов не нашел. Понятно что наваять свою фиговину, которая будет через inotify следить за изменениями и синхронизировать их, а удаленные изменения отлавливать по нажатию юзером кнопки или еще каким событиям - недолго.
Вчера вот я написал скрипт который по webdav заливает на сервер фотографии и дергает методом POST веб-форму, которая запускает генерацию тамбнейлов и html-ных индексов. Термукс все таки великая вещь.
Поигравшись со специализированными вариантами DAV - CardDav и Caldav я понял, что эта идея не совсем бессмыслена.
Автоматическая куска файловой системы по идее позволяет решить те задачи, которые остались после того как я разобрался с контактами и календарями. (у меня есть поистине чудесное описание того, как синхронизировать адресную книгу и календарь claws mail с carddav и caldav с помощью vdirsyncer-а, но поля этого поста слишком малы, чтобы его здесь записать).
Но вот что-то подходящего решения я пока не вижу.
Что требуется:
Имеется
- n компьютеров с Debian и m телефонов с Android. Большую часть времени они - с серыми IP-адресами.
- k файлов, приложения для работы с которыми есть для всех ОС из предыдущего пункта. Файлы слишком бинарные чтобы имело смысл использовать распределенную VCS.
- один сервер, доступность которого достаточна для того чтобы через него синхронизироваться, а на нем apache с mod_proxy и mod_dav, rsyncd и т.д. и т.п.
- один юзер который в непредсказуемой последовательности пользуется n+m устройствами из первого пункта, но может соблюдать некоторую дисциплину с тем чтобы не открывать файл на одном устройстве, когда на другом открыт тот же файл и в него внесены несохраненные изменения.
Задача:
- обеспечить, чтобы когда юзер на некотором устройстве, имеющем доступ к интернету, открывает файл, у него была самая свежая версия.
- обеспечить, чтобы если юзер вносит изменения в файл, эти изменения попали на сервер как только так сразу
- сделать так, чтобы если изменения не попали на сервер из-за проблем с connectivity, юзер об этом знал и имел ручку, чтобы пнуть синхронизацию когда по его мнению эти проблемы будут решены.
Правда, надо сказать что ятут недавно ухитрился с фоссилом, который решает перечисленные задачи для файлов, для которых осмысленен контроль версий, посадить та-а-кой конфликт, что разгребаться пришлось при помощи ключиков --force. Но это, увы неизбежное свойство большеносых варваров (как писал Шумил, по всему что Коре было известно Джафар был типичнейшим бледнолицым).
Рассмотренные варианты:
- lsyncd - все хорошо с серверной частью. Не требует на сервере ничего, кроме rsync, который там и так есть. Но, насколько я понял, не умеет следить за изменениями на сервере и тащить их обратно. Версии для Android вроде бы нет, в доступных термуксовских репозитриях - нет.
- syncthing - есть в дистрибутиве, есть на f-droid е есть в termux-овских репозиториях.
Но какая-то она немножко слишком децентрализованная. За эту децентрализацию придется платить. Причем скорее всего траффиком. А его (в случае сотовых сетей) жалко.
Пока других вариантов не нашел. Понятно что наваять свою фиговину, которая будет через inotify следить за изменениями и синхронизировать их, а удаленные изменения отлавливать по нажатию юзером кнопки или еще каким событиям - недолго.
Вчера вот я написал скрипт который по webdav заливает на сервер фотографии и дергает методом POST веб-форму, которая запускает генерацию тамбнейлов и html-ных индексов. Термукс все таки великая вещь.