Синхронізуйте довільні файли із сервером


12

Я шукаю спосіб зберегти файл (Keepass .kdb) на своєму Droid2 синхронізовано з файлом на сервері.

  • Це просто файл у файловій системі - не контакти, календар тощо.
  • Мені потрібно двонаправлене, а не просто натискання або тягнення. Якщо сервер зміниться, завантажте його, якщо Android зміниться, завантажте його. Так, це може призвести до конфліктів, які потрібно вирішити.

Я використовую Unison, щоб досягти цього між ПК, але для Android немає клієнта Unison. Я виявив рукоділля щодо встановлення OCaml на Android та запуску Unison на цьому, але сподіваюся на щось рідне.

Botsync звучить багатообіцяюче, але це односпрямовано - при створенні конфігурації ви вибираєте, завантажувати чи завантажувати.

Я бачив sugarsync, але враховуючи, що це мій файл KeePass, я вважаю за краще зберігати його на власному сервері.


Я збирався запропонувати sugarsync ... але я розумію занепокоєння
Даніель

Погляньте на sparkleshare.org - відносно новий проект, клієнт Android в роботі, я вважаю.
Спаркс

Відповіді:


3

Тут ви можете розглянути ще один варіант, якщо ви хочете використовувати це для бази даних паролів KeePass. Це не працюватиме для інших чутливих матеріалів, але оскільки ви спеціально запитали KeePass, ось що я роблю:

  • Захистіть базу даних паролем (я вважаю, у вас уже є) та ключем. Це дасть вам двофакторну автентифікацію ("щось, що ви знаєте" - ваш пароль, і "щось у вас є" - ваш ключ). База даних паролів може бути розблокована лише тоді, коли обидва елементи знаходяться на місці.
  • Скопіюйте ключ до локального сховища всіх своїх пристроїв та дайте йому якусь непомітну назву. Переважно покладіть його в переповнений каталог, де це може здатися деяким файлом конфігурації або файлом випадкового шуму, створеним програмою.
  • Завантажте свою базу даних до сторонньої служби зберігання (я використовую Dropbox, але інші параметри будуть працювати так само добре). Само собою зрозуміло, що сервіс повинен мати клієнта Android, якщо ви хочете використовувати його на своєму пристрої.

  • НЕ завантажуйте свій ключ туди - використовуйте інший метод, щоб скопіювати його на потрібні вам пристрої. Зокрема, Dropbox зберігає копію завантажених вами файлів, а потім видаляє принаймні на тиждень для резервного копіювання (досить зручно, я повинен визнати), але якщо ваш ключ уже на сервері, він не є більш безпечним, ніж звичайний пароль, захищена база даних.

  • Налаштуйте своїх клієнтів KeePass не пам’ятати про розташування ключа (запам’ятовування розташування бази даних нормально).

Таким чином ви можете завантажувати свою базу даних на випадковий веб-сайт, і навіть якщо ваш пароль чомусь порушений (наприклад, реєстратори клавіатури), ви можете використовувати базу даних лише з пристроїв, на яких є ключ І тепер, який файл насправді є ключем .

Для зручності вам може знадобитися автентифікація лише на ключі на мобільному пристрої (захищені паролі набридливо набирати на мобільному пристрої, і ви, очевидно, не бажаєте використовувати тут щось коротке і просте). Але я б рекомендував проти цього, оскільки в цьому випадку безпека навіть нижча, ніж база даних, захищена паролем - замість пароля, який у вас є в голові, ви використовуєте "пароль" (файл ключа), який є на вашому пристрої .

KeePass не дає жодних підказок, потрібен він ключ, пароль або обидва - що працює на вашу користь.


+1 для гарної інформації, я погоджуюся, що пропуск і ключ файлів повинні бути "достатніми" для файлу зберігання. Я залишаю питання без відповіді, сподіваючись, що в майбутньому буде відповідь "ось програма, яка синхронізує". Дякую!
Джейсон Вієрс

4

Можливо, ви знайшли щось, з чим ви задоволені зараз, але я склав бінарний унісон, який працює на андроїд - можливо, використовуючи інструкції про розмахування руками, про які ви говорите, - я використав їх для перехресного компіляції джерела Linux в ubuntu 12.10 за допомогою Android NDK та з кількома змінами коду, який він працює зараз. Дотримуйтесь інструкцій на веб-сторінці https://sites.google.com/site/keigoattic/ocaml-on-android, і тоді вам потрібно буде виконати кілька дій. У джерелі unison є файл під назвою pty.c - знайдіть такий розділ:

// openpty
#if defined(__linux)
#include <pty.h>
/*#define HAS_OPENPTY 1*/
#endif

і коментувати, define HAS_OPENPTY 1як показано. Вам також потрібно відкрити ubase / util.ml і відредагувати:

let homeDir () =
  System.fspathFromString "/Your path here"

Прокоментувати звідси:

    (if (osType = `Unix) || isCygwin then
       safeGetenv "HOME"
     else if osType = `Win32 then
(*We don't want the behavior of Unison to depends on whether it is run
  from a Cygwin shell (where HOME is set) or in any other way (where
  HOME is usually not set)
       try System.getenv "HOME" (* Windows 9x with Cygwin HOME set *)
       with Not_found ->
*)
       try System.getenv "USERPROFILE" (* Windows NT/2K standard *)
       with Not_found ->
       try System.getenv "UNISON" (* Use UNISON dir if it is set *)
       with Not_found ->
       "c:/" (* Default *)
     else
       assert false (* osType can't be anything else *))

... Туди!

Тоді вам також доведеться редагувати Makefile.Ocaml

   CWD=$(shell pwd)
    EXEC_EXT=
    WINOBJS=
    SYSTEM=generic
    # openpty is in the libutil library
    ifneq ($(OSARCH),solaris)
      ifneq ($(OSARCH),osx)
      #  CLIBS+=-cclib -lutil
      endif
    endif
    buildexecutable::
        @echo Building for Unix
  endif
endif

І коментуйте, # CLIBS+=-cclib -lutilяк показано.

І наскільки я пам’ятаю, що все працювало. Інший крок, щойно складений, - це змонтувати свій системний розділ Android як записуваний та скопіювати унісон у папку / system, де є всі інші команди оболонки.

Сподіваюся, що комусь це корисно ... Я втратив багато сну під час складання.


2

Я роблю саме те, що ви просите з FolderSync. Це дуже приємний фрагмент програмного забезпечення з великою кількістю опцій та функцій. Я використовую це як особисту альтернативу папки, яка використовує SFTP через SSH з файлом ключів для аутентифікації. Ви навіть можете налаштувати його для автоматичного виявлення змін у локальних репліках та запуску негайного завантаження. На своєму телефоні я використовую його для завантаження фотографій на мій сервер, як тільки я беру їх, і він працює просто ідеально.


2

Я також стежив за корінням крос-компіляції, як зазначено у відповіді ChC

Я випустив UnisonSync, який дозволяє вийти на унісон без роботи з командним рядком (і без вкорінення) в Google Play:

Від доказування концепції, яка швидко працювала, до програми, готової до виробництва, знадобилося набагато більше часу, ніж очікувалося, але зараз вона працює і дуже зручна для синхронізації моїх публікацій та сховищ даних.


1
Я, мабуть, закріплюю інструкції, щоби перетнути компіляцію в якийсь момент скоро, і покласти бінарний унісон / дроп-бір кудись для тих, хто вважає за краще використовувати командний рядок.
День

1

Я використовую унісон, монтуючи андроїд за допомогою sshfs. Як ssh-сервер я використовую SSHDroid .

Але будьте попереджені, унісон зі sshfs дійсно повільний. Хоча з одним файлом це не має значення.


0

Я не знаю нічого рідного, що це робить. Існує багато програм синхронізації файлів, але всі ті, що я бачив, або однонаправлені, або покладаються на користувача, щоб синхронізувати файл з телефону в хмару вручну. Те, що ви маєте намір зробити, повинно бути можливим за допомогою API Dropbox, але я не знаю, чи готові ви створити власний спеціальний додаток, який слідкує за конкретними файлами, які потрібно синхронізувати


Я б розглядав користувальницький маршрут програми, але якщо я це зробив, це буде написання рідного клієнта Unison, а не папка для випуску (тож він залишиться на моєму сервері).
Джейсон Віерс

0

Пошук на ринку виявив aFileSync, який стверджує, що синхронізує файли через FTP, а також підтримує файли автоматичної синхронізації. Вам потрібно буде запустити FTP-сервер самостійно.

Також є SK Sync , але користувачі повідомили про змішані результати.

Очевидно, перед тим, як спробувати будь-яку з цих програм / додатків, будь ласка, створіть резервні копії файлів як на ПК / сервері, так і на пристрої Android.


aFileSync звучить так, ніби він має всі форми поведінки, які я хочу. Огляди трохи страшні, і мені доведеться встановити FTP-сервер, щоб побачити, як це відбувається.
Джейсон Вієрс

-1

Для синхронізації файлів з Android є нова версія мого додатка BotSyncPlus . Коли ви писали про BotSync, для завантаження чи завантаження була лише одна конфігурація. Але тепер доступна нова версія BotSyncPlus, де є мультиконфігурація.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.