Sinkronkan file sewenang-wenang dengan server

12

Saya sedang mencari cara untuk menyimpan file (keepass .kdb) pada Droid2 saya yang sinkron dengan yang ada di server.

  • Ini hanya file di sistem file - bukan kontak, kalender, dll.
  • Saya perlu dua arah, tidak hanya mendorong atau menarik. Jika server berubah, unduh, jika Android berubah, unggahlah. Ya, ini dapat menyebabkan konflik yang perlu diselesaikan.

Saya menggunakan Unison untuk mencapai ini di antara PC, tetapi tidak ada klien Unison untuk android. Saya menemukan tangan melambai menginstal OCaml di Android dan menjalankan Unison untuk itu, tapi saya berharap untuk sesuatu yang asli.

Botsync terdengar menjanjikan, tapi ini searah - saat membuat konfigurasi, Anda memilih apakah itu mengunggah atau mengunduh.

Saya telah melihat sugarsync, tetapi mengingat ini adalah file KeePass saya, saya lebih suka menyimpannya di server saya sendiri.

Jason Viers
sumber
Saya akan menyarankan sugarsync ... tapi saya mengerti masalahnya
Daniel
Lihatlah sparkleshare.org - proyek yang relatif baru, klien Android dalam pekerjaan, saya percaya.
Sparx

Jawaban:

3

Anda mungkin ingin mempertimbangkan opsi lain di sini, jika Anda ingin menggunakan ini untuk basis data kata sandi KeePass. Ini tidak akan berfungsi untuk materi sensitif lainnya, tetapi karena Anda bertanya secara khusus untuk KeePass, inilah yang saya lakukan:

  • Lindungi database dengan kata sandi (saya anggap sudah,), dan kunci. Ini akan memberi Anda otentikasi dua faktor ("sesuatu yang Anda tahu" - kata sandi Anda, dan "sesuatu yang Anda miliki" - kunci Anda). Basis data kata sandi hanya bisa dibuka ketika kedua bagian sudah ada.
  • Salin kunci ke penyimpanan lokal semua perangkat Anda, dan berikan nama yang tidak mencolok. Lebih disukai meletakkannya di direktori yang ramai di mana itu akan tampak seperti beberapa file konfigurasi atau file noise acak yang dibuat oleh suatu program.
  • Unggah basis data Anda ke layanan penyimpanan pihak ketiga (Saya menggunakan Dropbox, tetapi opsi lain juga berfungsi). Tak perlu dikatakan bahwa layanan ini harus memiliki klien Android jika Anda ingin menggunakannya di perangkat Anda.

  • JANGAN unggah kunci Anda di sana - gunakan metode lain untuk menyalinnya ke perangkat yang Anda butuhkan. Dropbox secara khusus menyimpan salinan file yang Anda unggah dan kemudian menghapus setidaknya selama seminggu untuk keperluan cadangan (cukup nyaman, saya harus mengakui), tetapi jika kunci Anda sudah ada di server, itu tidak lebih aman daripada kata sandi normal- basis data yang dilindungi.

  • Konfigurasikan klien KeePass Anda agar tidak mengingat lokasi kunci (mengingat lokasi basis data baik-baik saja).

Dengan cara ini, Anda dapat mengunggah database Anda ke situs web acak, dan bahkan jika kata sandi Anda dikompromikan karena beberapa alasan (mis. Pencatat keyboard), Anda hanya dapat menggunakan database dari perangkat yang memiliki kunci DAN sekarang file mana yang sebenarnya merupakan kunci .

Untuk kenyamanan, Anda mungkin ingin memiliki otentikasi khusus-kunci pada perangkat seluler (kata sandi aman sangat membosankan untuk mengetik pada perangkat seluler, dan Anda jelas tidak ingin menggunakan sesuatu yang singkat dan mudah di sini). Tetapi saya akan merekomendasikan hal ini, karena dalam hal ini keamanannya bahkan lebih rendah daripada database yang dilindungi kata sandi - alih-alih kata sandi yang ada di kepala Anda, Anda menggunakan "kata sandi" (file kunci) yang ada di perangkat Anda .

KeePass tidak memberikan petunjuk apakah memerlukan kunci, kata sandi atau keduanya - yang bermanfaat bagi Anda.

Martin Tapankov
sumber
+1 untuk info yang bagus, saya setuju bahwa pass & keyfile harus "cukup" untuk file keepass. Saya meninggalkan pertanyaan yang belum terjawab dengan harapan bahwa akan ada jawaban "inilah program yang menyelaraskan" di masa mendatang. Terima kasih!
Jason Viers
4

Anda mungkin telah menemukan sesuatu yang Anda sukai sekarang, tetapi saya telah menyusun binary of unison yang berfungsi di android - dimungkinkan menggunakan instruksi melambaikan tangan yang Anda bicarakan - Saya menggunakannya untuk melakukan kompilasi silang sumber linux di dalam ubuntu 12.10 menggunakan NDK android dan dengan beberapa perubahan pada kode itu sekarang berfungsi. Ikuti instruksi di https://sites.google.com/site/keigoattic/ocaml-on-android dan kemudian Anda perlu melakukan beberapa hal. Ada file bernama pty.c di sumber serentak - temukan bagian berikut:

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

dan komentar define HAS_OPENPTY 1seperti yang ditunjukkan. Anda juga perlu membuka ubase / util.ml dan mengedit:

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

Komentar dari sini:

    (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 *))

... ke sini!

Maka Anda juga harus mengedit 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

Dan berkomentar # CLIBS+=-cclib -lutilseperti yang ditunjukkan.

Dan sejauh yang saya ingat itu semua berhasil. Langkah lain yang pernah dikompilasi adalah me-mount partisi sistem android Anda sebagai dapat ditulis dan salin bersamaan ke folder / system di mana semua perintah shell lainnya berada.

Semoga itu bisa membantu seseorang ... Saya kehilangan banyak waktu tidur karena dikompilasi.

ChC
sumber
2

Saya melakukan persis apa yang Anda minta dengan FolderSync. Ini adalah perangkat lunak yang sangat bagus, dengan banyak opsi dan fitur. Saya menggunakannya sebagai alternatif dropbox pribadi menggunakan SFTP melalui SSH dengan keyfile untuk otentikasi. Anda bahkan dapat mengaturnya untuk secara otomatis mendeteksi perubahan pada replika lokal dan memicu unggahan langsung. Di ponsel saya, saya menggunakannya untuk mengunggah foto di server saya segera setelah saya mengambilnya, dan itu berfungsi dengan sempurna.

RB12
sumber
2

Saya juga mengikuti root kompilasi silang seperti ditunjukkan dalam jawaban ChC

Saya telah merilis UnisonSync yang memungkinkan Anda untuk menyatukan tanpa berurusan dengan baris perintah (dan tanpa rooting) di Google Play:

Dari pembuktian konsep, yang dengan cepat berjalan, ke aplikasi yang siap produksi butuh lebih banyak waktu dari yang diharapkan, tetapi sekarang berfungsi dan sangat berguna untuk menyinkronkan publikasi dan penyimpanan lembar data saya.

Dan
sumber
1
Saya mungkin akan mengkonsolidasikan instruksi untuk mengkompilasi silang di beberapa titik segera dan meletakkan biner serempak / dropbear di suatu tempat, bagi mereka yang lebih suka menggunakan baris perintah.
Dan
1

Saya menggunakan serentak dengan memasang android dengan sshfs. Sebagai server ssh saya menggunakan SSHDroid .

Tetapi berhati-hatilah, berbarengan dengan sshf benar-benar lambat. Meskipun dengan satu file tunggal itu tidak masalah.

Volker
sumber
0

Saya tidak tahu ada yang asli yang melakukan ini. Ada banyak aplikasi sinkronisasi file tetapi semua yang saya lihat adalah searah, atau bergantung pada pengguna untuk menyinkronkan file secara manual dari telepon ke cloud. Apa yang ingin Anda lakukan harus dimungkinkan dengan Dropbox API, tetapi saya tidak tahu apakah Anda bersedia membuat aplikasi khusus sendiri yang terus mengawasi file-file tertentu yang perlu Anda selaraskan.

FoamyGuy
sumber
Saya telah mempertimbangkan rute aplikasi khusus, tetapi jika saya melakukannya itu akan menulis klien Unison asli daripada yang dropbox (jadi itu akan tetap di server saya).
Jason Viers
0

Pencarian pasar mengungkapkan aFileSync yang mengklaim untuk menyinkronkan file melalui FTP dan juga memiliki dukungan untuk file sinkronisasi otomatis. Anda harus menjalankan server FTP sendiri.

Ada juga SK Sync , tetapi pengguna telah melaporkan hasil yang beragam dengannya.

Tentunya, sebelum Anda mencoba salah satu dari program / aplikasi ini, harap cadangkan file Anda baik di PC / server maupun perangkat Android Anda.

Sparx
sumber
aFileSync sepertinya memiliki semua perilaku yang saya inginkan. Ulasannya agak menakutkan, dan saya harus menyiapkan server FTP untuk melihat bagaimana kelanjutannya.
Jason Viers
-1

Untuk menyinkronkan file dari Android adalah versi baru dari aplikasi saya BotSyncPlus . Ketika Anda menulis tentang BotSync, hanya ada satu konfigurasi untuk diunggah atau diunduh. Tapi sekarang versi baru BotSyncPlus tersedia, di mana multi-konfigurasi.

Igor Mino
sumber