Синхронизировать произвольные файлы с сервером

12

Я ищу способ синхронизации файла (keepass .kdb) на моем Droid2 с файлом на сервере.

  • Это просто файл в файловой системе, а не контакты, календарь и т. Д.
  • Мне нужно двунаправленное, а не просто толкать или тянуть. Если сервер изменился, загрузите его, если изменился Android, загрузите его. Да, это может привести к конфликтам, которые необходимо разрешить.

Я использую Unison для достижения этого между компьютерами, но нет клиента Unison для Android. Я обнаружил, что махал рукой об установке OCaml на Android и запуске Unison на этом, но я надеюсь на что-то родное.

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

Я видел sugarsync, но, учитывая, что это мой файл KeePass, я бы предпочел сохранить его на своем собственном сервере.

Джейсон Вирс
источник
Я собирался предложить Sugarsync ... но я понимаю проблему
Даниэль
Взгляните на sparkleshare.org - относительно новый проект, Android-клиент в разработке, я считаю.
Спаркс

Ответы:

3

Возможно, вы захотите рассмотреть другой вариант здесь, если вы хотите использовать его для базы паролей KeePass. Это не будет работать для других чувствительных материалов, но, поскольку вы специально попросили KeePass, вот что я делаю:

  • Защитите базу данных паролем (я полагаю, у вас уже есть) и ключом. Это даст вам двухфакторную аутентификацию («что-то, что вы знаете» - ваш пароль, и «что-то, что у вас есть» - ваш ключ). База паролей может быть разблокирована только тогда, когда обе части на месте.
  • Скопируйте ключ в локальное хранилище всех ваших устройств и дайте ему незаметное имя. Желательно поместить его в переполненный каталог, где он может показаться каким-то файлом конфигурации или файлом случайного шума, созданным программой.
  • Загрузите свою базу данных в стороннюю службу хранения (я использую Dropbox, но другие опции также будут работать). Само собой разумеется, что сервис должен иметь клиент Android, если вы хотите использовать его на своем устройстве.

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

  • Настройте ваши клиенты KeePass так, чтобы они не запоминали расположение ключа (хорошо помнить расположение базы данных).

Таким образом, вы можете загрузить свою базу данных на случайный веб-сайт, и даже если ваш пароль по какой-то причине будет взломан (например, клавиатурные логгеры), вы можете использовать базу данных только с устройств, которые имеют ключ И теперь какой файл на самом деле является ключом ,

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

KeePass не дает никаких подсказок, требуется ли ему ключ, пароль или оба - что работает в ваших интересах.

Мартин Тапанков
источник
+1 для хорошей информации, я согласен, что pass & keyfile должно быть «достаточно» для файла keepass. Я оставляю вопрос без ответа в надежде, что в будущем будет ответ «Вот программа, которая синхронизирует». Благодарность!
Джейсон Вирс
4

Возможно, вы нашли что-то, чем вы довольны сейчас, но я скомпилировал бинарный файл unison, который работает на Android - это возможно с помощью инструкций по размахиванию руками, о которых вы говорите - я использовал их для кросс-компиляции исходного кода linux в ubuntu 12.10 используя Android NDK и с некоторыми изменениями в коде, он теперь работает. Следуйте инструкциям на странице https://sites.google.com/site/keigoattic/ocaml-on-android, и тогда вам нужно будет сделать несколько вещей. В унисонном источнике есть файл 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 как доступный для записи и скопировать unison в папку / system, где находятся все остальные команды оболочки.

Надеюсь, что это кому-нибудь пригодится ... Я потерял много сна, чтобы его скомпилировать.

ChC
источник
2

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

RB12
источник
2

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

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

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

Дэн
источник
1
Я, вероятно, соберу инструкции для кросс-компиляции в какой-то момент и добавлю куда-нибудь двоичный файл unison / dropbear для тех, кто предпочитает использовать командную строку.
Дан
1

Я использую унисон, монтируя андроид с помощью sshfs. В качестве сервера SSH я использую SSHDroid .

Но будьте осторожны, унисон с sshfs очень медленный. Хотя с одним файлом это не должно иметь значения.

Volker
источник
0

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

FoamyGuy
источник
Я рассмотрел маршрут пользовательского приложения, но если бы я это сделал, он бы писал собственный клиент Unison, а не дропбокс (так что он останется на моем сервере).
Джейсон Вирс
0

В результате поиска на рынке была обнаружена aFileSync, которая утверждает, что синхронизирует файлы по FTP, а также поддерживает автоматическую синхронизацию файлов. Вам нужно будет запустить FTP-сервер самостоятельно.

Существует также SK Sync , но пользователи сообщают о смешанных результатах с ним.

Очевидно, что перед тем, как вы попробуете любую из этих программ / приложений, пожалуйста, сделайте резервную копию ваших файлов как на ПК / сервере, так и на вашем Android-устройстве.

Sparx
источник
aFileSync звучит так, как будто у меня все поведение, которое я хочу. Обзоры немного пугающие, и мне придется настроить FTP-сервер, чтобы посмотреть, как он работает.
Джейсон Вирс
-1

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

Игорь Мино
источник