vitus_wagner: My photo 2005 (Default)
[personal profile] vitus_wagner
Тут в комментах высказались на тему хранения ряда сенситивных файлов на дропбоксе.
Поигравшись со специализированными вариантами DAV - CardDav и Caldav я понял, что эта идея не совсем бессмыслена.

Автоматическая куска файловой системы по идее позволяет решить те задачи, которые остались после того как я разобрался с контактами и календарями. (у меня есть поистине чудесное описание того, как синхронизировать адресную книгу и календарь claws mail с carddav и caldav с помощью vdirsyncer-а, но поля этого поста слишком малы, чтобы его здесь записать).

Но вот что-то подходящего решения я пока не вижу.

Что требуется:


Имеется

  1. n компьютеров с Debian и m телефонов с Android. Большую часть времени они - с серыми IP-адресами.
  2. k файлов, приложения для работы с которыми есть для всех ОС из предыдущего пункта. Файлы слишком бинарные чтобы имело смысл использовать распределенную VCS.
  3. один сервер, доступность которого достаточна для того чтобы через него синхронизироваться, а на нем apache с mod_proxy и mod_dav, rsyncd и т.д. и т.п.
  4. один юзер который в непредсказуемой последовательности пользуется n+m устройствами из первого пункта, но может соблюдать некоторую дисциплину с тем чтобы не открывать файл на одном устройстве, когда на другом открыт тот же файл и в него внесены несохраненные изменения.


Задача:


  1. обеспечить, чтобы когда юзер на некотором устройстве, имеющем доступ к интернету, открывает файл, у него была самая свежая версия.
  2. обеспечить, чтобы если юзер вносит изменения в файл, эти изменения попали на сервер как только так сразу
  3. сделать так, чтобы если изменения не попали на сервер из-за проблем с connectivity, юзер об этом знал и имел ручку, чтобы пнуть синхронизацию когда по его мнению эти проблемы будут решены.


Правда, надо сказать что ятут недавно ухитрился с фоссилом, который решает перечисленные задачи для файлов, для которых осмысленен контроль версий, посадить та-а-кой конфликт, что разгребаться пришлось при помощи ключиков --force. Но это, увы неизбежное свойство большеносых варваров (как писал Шумил, по всему что Коре было известно Джафар был типичнейшим бледнолицым).

Рассмотренные варианты:


  • lsyncd - все хорошо с серверной частью. Не требует на сервере ничего, кроме rsync, который там и так есть. Но, насколько я понял, не умеет следить за изменениями на сервере и тащить их обратно. Версии для Android вроде бы нет, в доступных термуксовских репозитриях - нет.
  • syncthing - есть в дистрибутиве, есть на f-droid е есть в termux-овских репозиториях.
    Но какая-то она немножко слишком децентрализованная. За эту децентрализацию придется платить. Причем скорее всего траффиком. А его (в случае сотовых сетей) жалко.


Пока других вариантов не нашел. Понятно что наваять свою фиговину, которая будет через inotify следить за изменениями и синхронизировать их, а удаленные изменения отлавливать по нажатию юзером кнопки или еще каким событиям - недолго.

Вчера вот я написал скрипт который по webdav заливает на сервер фотографии и дергает методом POST веб-форму, которая запускает генерацию тамбнейлов и html-ных индексов. Термукс все таки великая вещь.

Date: 2018-06-27 08:58 am (UTC)
hrenov_drummer: (Default)
From: [personal profile] hrenov_drummer
> у меня есть поистине чудесное описание того, как синхронизировать адресную книгу и календарь claws mail с carddav и caldav с помощью vdirsyncer-а, но поля этого поста слишком малы, чтобы его здесь записать

Просим, просим!

Date: 2018-06-27 09:52 am (UTC)
From: [identity profile] sergio.livejournal.com
> syncthing слишком децентрализованная

отключить discovery и прямой ip сервера прописать

Date: 2018-06-27 10:17 am (UTC)
From: [identity profile] sergio.livejournal.com
работает

Edit Device

Enter comma separated ("tcp://ip:port", "tcp://host:port") addresses or "dynamic" to perform automatic discovery of the address.

Date: 2018-06-27 10:13 pm (UTC)
ext_1480035: (Default)
From: [identity profile] self-perfection.ya.ru
Использую syncthing пару лет, в том числе на телефоне для синхронизации фотографий, записей звонков, заметок. Одни заметки это 2к текстовых файликов. Заметного оверхеда по трафику не замечал.

Больше может мешать индекс чанков синхронизируемых файлов. Он обидно занимает в хранилище порядка 1% размера синхронизируемых файлов.

Profile

vitus_wagner: My photo 2005 (Default)
vitus_wagner

June 2025

S M T W T F S
1 234567
891011121314
15161718192021
22232425262728
2930     

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jun. 4th, 2025 03:30 am
Powered by Dreamwidth Studios