Evde kendi Dropbox / Ubuntu One sunucumu nasıl yapabilirim?


70

Evde kendi "Dropbox, Ubuntu One" sunucumu nasıl kuracağımı gösterebilecek herhangi bir kaynak bilen var mı?

Bu hizmetlerin fikrini gerçekten çok seviyorum, ancak 'eşyalarımı' bulutların içine koymak istemiyorum. İdeal olarak, Linux ve Windows'ta çalışan bir müşteriye sahip olmalıdır.

İFolder’ı Ubuntu 10.04’e kurmaya çalıştım, ancak şimdiye kadar başarılı olamadım.


Sorunu anladığımdan emin değilim. Dropbox'ın nesi var?
Oli

Bazı depolama sınırlamaları vardır ve birçok projede birçok ortak çalışanla birlikte, 50 GiB ödeyenleri oldukça hızlı bir şekilde kaybedilir.
Henrik

4
Dropbox gibi şirketlerin kişisel verilerimizi saklamalarına izin vermenin beklenmeyen sonuçları olabilir. Neyse ki, kendi kişisel bulutunuzu fiş tipi ARM tabanlı bir bilgisayarda çalıştırabilen bir işletim sistemi yapmak için bir proje yürütülüyor.
daithib8

2
Bu kadar basit olmadığını ironik sudo apt-get install ubuntu-one-server.
Prateek

Yanıtlar:


41

Şu anda kutunun dışında çalışacak harika bir açık kaynak alternatifi yok. İzlenecek en iyi şey sparkleshare projesidir: http://www.sparkleshare.org/

Umarım bu harika bir hale gelecek, kendin yap, alternatif.


2
Ne yazık ki, ~ 1 TB ikili veri için uygun olmayan arka uç olarak git DVCS kullanıyor, çünkü ikili veri üzerindeki değişiklikler sunucu alanı kullanımını azaltacaktır. Ama bunun yanında umut verici görünüyor.
matematik

44

Aslında birçoğu var.

  • SparkleShare (deps: git / subversion, mono, python) github GUI tabanlı senkronizasyon yazılımında.

    a. Sürüm oluşturma: Kaynak kontrol sistemi sayesinde merkezi bir sunucuya sürüm numarası üzerinden muteks temellidir.

    b. Devlet: geliştirilme aşamasında

    c. Artıları: OSS, tek tabanlı çok kolay modüle edilebilir, Eksileri: kullanıcı düzeyinde süreç, GC'ye bağımlı, etkisiz paylaşım protokolü olarak git gibi büyüklük sırasına göre küçük metin dosyaları için derlemek oldukça zor (denedim). Üst düzey araçların kullanılması.

  • lipsync (deps: Unison, rsync) Komut satırı hizmet tabanlı yazılım.

    a. Sürüm: rsync delta algoritması aracılığıyla . Programcının çatışma çözümünü seçmesi gerektiğini düşünüyorum.

    b. Durum: Kaynak kodunu bulamıyorum, bu yüzden hiçbir fikrim yok. Git deposundaki tek şey ikili dosyalar.

    c. Artıları: orta seviye araçları kullanarak güzel kurulum.

  • iFolder - Novell'in Dropbox'ı. Henüz kaynağını çalışmadım. Ben sadece bu düzenlemeyi bitirmek istiyorum ve insanlar ilgiliyse daha fazlasını ekleyeceğim.

    a. Sürüm:

    b. Durum: Ubuntu'da bile derlemek için sorunlu, paketleri tek başına. İşte detaylı kurulum rehberi .

    c. Artıları: Windows X64 istemcisi, olgun, ACL'lerle AD entegrasyonu, başka hiçbir projenin uygulamaya geçmediği özellikler. Bunun iyi bir başlangıç ​​noktası olabileceğini düşünüyorum. Eksileri: Novell genel svn deposunu birincil repo olarak kullanmayabilir ve yalnızca kod bırakma işlemi yapabilir. Ben tam olarak bu konuda bilmiyorum. Ubuntu’ya kolayca kurmak için openSUSE’ye bağlanmış olabilir. Algoritmalarını kontrol etmek için.

  • scp / rcp - rsync lehine itiraz edildi

  • DRDB - dağıtılmış RAID-1 için aygıt yansıtma araçlarını, örneğin bir dropbox sunucusunun varyantını engeller. Kaynak kodunu henüz kontrol etmedim, ancak yalnızca linux. Asıl algoritma, bu yazılım listesinin altındaki incelemelerimdeki kaynak kodla birleştirmek için muhtemelen kolay olacaktır.

    a. Sürüm: LAN / WAN üzerinden dahili mesaj formatı

    b. Devlet: yeterince olgun görünüyor

    c. Artıları: Linux için yeterince kararlı, Cons: başka hiçbir işletim sistemi desteklenmiyor


Şu anda Sanallaştırılmış bir Windows 7'deki derleme zamanlarını iyileştirmeyi araştırıyorum, metal üzerindeki Windows 7'deki derleme zamanları 40 sn, ancak yaklaşık 3m 20s sanallaştırılmış. NTFS'de seçilen klasörler için ram diski gibi görünen bir yazma önbelleği olan bir ioctl sürücüsü yazmayı düşünüyorum.

Yukarıdaki yazılımı kullanarak, bir haftalık 2-3 kişilik tam zamanlı geliştirme değerinin, yukarıdaki yazılımları birleştirerek dosyalarınızı kaybetmeyen kullanışlı bir Alpha üreteceğini düşünüyorum.


Benim sistemimde o zaman genel fikir;

  1. Bir sanal sürücü takın \? {GUID}, bu ram-disk ve RW-önbellektir. Bu sanal sürücüyü oluşturan yazılım iki giriş parametresi alır (hayati önem taşır):

    a. Hedef klasör; bu SMB klasörüdür, bu yüzden işletim sisteminin ağ yığınının gerçek IO'yu yönetmesine izin vereceğim. Benim durumumda bu, kendi başına ext4 sürücüde bir hedefi olan VMWare sanal klasörüdür, ancak SAMBA / SMB kullanarak kolayca dosya sunucunuz olabilir.

    b. Bağlanacak klasörün yolu, örn. C: \ ramdisk

    Sanal birimler oluşturmak için bu kod /Driver/DriverFilter.c içindeki TrueCrypt kodundan alınmalıdır (diğer dosyalar arasında)

  2. Sürücü, başladığında veri almak için SMB / VMWare / ağ protokolünü kullanır; Ağdan eşzamansız olarak düşük görev önceliğine sahip ve önbelleğini dolduruyor. Basit bir sıkıştırma algoritması kullanabilir ve mükemmel performans elde etmek için mesaj kutusu tipi devamını kullanan 1 ipliğe sahip olabilir. IO çağrıları zaman uyumsuz Windows'ta normal kullanabilir ve linux üzerinde onu kullanabilirsiniz epoll / Inotify uygulama ve bir kod alıp nginx .

  3. Ram diski olan hizmetim, adsız ramdisk sürücüsünü bir NTFS klasörü olarak bağlar. Tüm programlar C: \ ramdisk'e veya buna ne diyorsam yazmaya devam edebilir.

  4. Ağdan gelen zaman uyumsuz kopya hala devam ediyor. Yaklaşık 100 MiB / s ve 2 GiB ramdisk okuma hızında, tüm verileri okumak 20.5 s olacaktır.

Okunacak her çağrı, sabit bir n: ulong GiB max boyutlu dizi halinde endeksin CPU içi bir hesaplama yapacaktır. Gerçi çatışma çözme veya okuma-yazma kilitleri gerektirir. Microsoft Sync'te bulunanlar gibi bir çakışma çözümleme algoritması uygularsak, bir çakışma çözümleme işlemine ileti olarak çakışan her öbeği iletebiliriz. Dropbox yeni bir dosya oluşturarak ve "PrevFileName Kullanıcı Adı'nın Uyuşmaz Kopyası (yyyy-MM-dd) .ext" olarak isimlendirerek çözer. Muhtemelen bu, tek bir kaynağa karşı bir derleme yaparsa, küçük bir pencere öğesi tarafından değiştirilebilir - pencere aracı, olağanüstü değişiklikleri iletiler / olaylar olarak algılar ve çakışma çözümü protokolünü seçer. Bu nedenle, özel moddaki bir klasöre karşı programlama yaparken, Windows VM widget'ı 'özel' olarak ayarlayabilir.

Bu bu PRO'lar olurdu

  • Engellenmeyen / eşzamansız olurdu
  • Bu varsayımı yapar, ancak bir bilgisayarın çoğunlukla dosyalara yazmasını gerektirmez.
  • Keyfi büyük dosyalar için işe yarayacak
  • Bu projeleri birbirine bağlayarak * nix ve Windows üzerinde çalışacaktı.
  • Yüksek okuma performansı gerektiğinde çalışır (yani dosyalar fiziksel olarak diskte bulunur)
  • Çakışan olaylara ulaşıldığında, kullanıcının farklı türden olaylar için (yani farklı türden dosyalar için) tamamen etkili olan eklentileri yazmasına / indirmesine izin veren bir kullanıcı arayüzü uygulaması sağlanabilir. Örneğin, bir ikili dosya kopyalanıp başka bir dosya olarak kaydedilirken, bir metin dosyası Kompare / WinDiff ile açılabilir.

lipsync'in bin klasörü kabuk kodlar içerir, ikili dosyalar içermez.
haggai_e 02:11



3

Tam olarak aradığınızı sanmıyorum, ancak kullanım amacınıza bağlı.

CrashPlan bir yedekleme yazılımı paketi ve ilgili çevrimiçi yedekleme barındırma hizmetidir, ancak bunun asıl amacı, yazılımlarının verilerinizi İnternet üzerinden (veya LAN) yazılımı çalışan başka bir PC'de yedeklemenizi sağlayan bir moda sahip olmasıdır.

Bu, hedefin bulutta olması gerekmediği anlamına gelir. Dosyaları her yerden senkronize etmek ve erişmek yerine yedekleme yapmaktan daha fazlası olduğu gibi bir dropbox'a benzemez, ancak sadece yedeklemeler varsa, o zaman iyi çalışır. Yedeklenen dosyalara diğer PC'den erişmek istiyorsanız, "yerel bir geri yükleme" yapabileceğinizi düşünüyorum ama bu denediğim bir şey değil.

Temel yazılım paketi ücretsizdir ve "başka bir bilgisayara yedekleme" modunu destekler, ancak yalnızca zamanlanmış yedekleme yapar, ancak yalnızca zamanlanmış yedeklemeler yerine gerçek zamanlı eşitleme yapan ve aynı zamanda maliyeti olan "pro" bir sürümü de vardır. (Bulut depolama ayrıca bir aylık ekstra isteğe bağlı bir ödemedir)



2

-1 Bunun en iyi çözüm olduğunu düşünmüyorum ve bu nedenle cevap değil.
Henrik

-1 Bu bir rsync sunucusu değil bir çözüm dropbox değil ...
Arman

1
Bu çözüm yararlılıkla sınırlıdır, çünkü basitçe başka bir makaleye bağlanır ve linkrot riski oluşturur. Verilen cevap kaynak olarak gösterilmekle birlikte, bu cevap daha önemli olacak şekilde düzenlenmelidir.
Christopher Kyle Horton

Bu soruyu teorik olarak cevaplayabilse de , cevabın temel kısımlarını buraya eklemek ve referans için bağlantıyı sağlamak tercih edilir.
Tim

2

Çoğaltılmış bir klasöre sahip iki (veya daha fazla) makine kurmak istiyorsanız, glusterfs'a bakın.

GlusterFS Kullanıcı Kılavuzunu izlerseniz kurulumu kolaydır .


Bir GlusterFS kümesinde, istemciler başkalarına bağlıyken dosyaların senkronize edileceğini, ancak dosya sisteminin diğerlerinden bağlantısı kesilen bir istemcide yerel olarak erişilebilir olacağını mı söylüyorsunuz? Dizüstü bilgisayarım ve sunucum arasında senkronize etmek için bunu kullanmayı düşünüyorum.
Ryan Thompson

Evet. Testimi henüz tamamlamadım ancak sorunsuz bir şekilde çalışıyor gibi görünüyor.
Richard Holloway

Bu Windows'ta çalışmıyor, bu yüzden "dropbox uyumlu" değil.
Henrik

2

Kimse bitorrent senkronizasyonundan bahsetmedi mi? Herhangi bir şey üzerinde çalışır - Ubuntu, pencereler, birçok yaygın akıllı telefon işletim sistemi işletim sistemi, ahududu pi .... adını verirsiniz, muhtemelen çalışır ve normal bir kullanıcı olarak Şifrelenmiş aktarımlar, dosyalar bulutta depolanmadı (bittorrent'in bunun için izleyiciyi çalıştırdığını düşünüyorum), oldukça hızlı, klasörleri seçimli olarak paylaşabilirsiniz ve ilgili herhangi bir karmaşıklık yok, sadece diğerine bir anahtar kopyalayıp yapıştırmanız gerekiyor sistemi.

Bir kez ayarlandı, sadece çalışır.


1

Gözümü AeroFS üzerinde tutuyorum . Buluttaki depolamanın isteğe bağlı olduğu Dropbox benzeri bir hizmet olabilir gibi görünüyor. Mobil desteği ne zaman ve ne zaman uygulayacaklarını bilmiyorum ve sanırım bu dosyaları buluta senkronize etmenizi gerektiriyor. Öncelikle Windows, Mac ve Linux bilgisayarlar arasında oldukça ağrısız bir senkronizasyon çözümü ile ilgileniyorum.

Bunlar beta sürümün başında, ancak isterseniz davet için kayıt olabilirsiniz .


1

Apache'yi apache web sunucusu için mod_dav (webdav) ile kullanıyorum, sürücü olarak bağlayabilir ve dosyaları web üzerinden yükleyebilir / indirebilirim. Bu oldukça basit, ancak ihtiyaçlarınızı karşılayabilir.


1

Burada listelenen ilginç alternatifler var ve bu daha eski bir soru olsa da, bu konunun açıkça modası geçmiş olmadığına ve tam tersine son mahremiyet olayları nedeniyle gittikçe daha fazla önem kazandığına inanıyorum.

Bu yüzden kendi deneyimimi paylaşmak istiyorum. Çevrede barındırılan bir bulut için şu andaki çözümüm Seafile .

Deniz dosyası özellikleri:

  • Web tabanlı bulut erişimi
  • Linux, Windows, Mac, iOS (ücretsiz değil), Android Müşterileri
  • Kullanıcı / grup yönetimi
  • Farklı kütüphaneler yoluyla dosya organizasyonu
  • İstemci yazılımı ile otomatik dosya senkronizasyonu
  • Ortak bağlantılar oluşturarak dosyaları yayınlama imkanı

Seafile deneyimlerim:

  • Kurulum kolay ve çabuk bitti! (ince bir debian vm'de, fiziksel ana bilgisayar dmraid 5'e paylaşım yoluyla depolanan dosyalar ile)
  • Kullanıcı arayüzü temiz ve fonksiyonel
  • Müşteri yazılımı temiz ve işlevsel
  • Orada hiçbir işlevsel sorun şimdiye kadar, benim için! (bunu birkaç haftadan beri kullanıyor)
  • Özellik seti temeldir (örneğin owncloud ile karşılaştırıldığında), ancak burada her şeyin işe yaradığını vurguluyorum!
  • Doğrudan proxy desteği yok (en azından linux istemcisi - ve web arayüzü için!). Not: webinterface çalışır, ancak webinterface aracılığıyla dosyaların indirilmesi bir proxy arkasında çalışmaz - bunun bir şekilde mümkün olup olmadığını bilmeyin

Proxy desteğine ihtiyacım olmadığı için Seafile'den gerçekten memnunum!


0

Sunucumdaki dizinleri masaüstümdeki ve dizüstü bilgisayarımdaki yerel dizinler olarak bağlamak için SSHFS kullanıyorum. Tüm dosya değişiklikleri doğrudan sunucuya kaydedilir. Dropbox'ın aksine, dosyalar yerel olarak istemci makinelerinizde depolanmaz. Bence bu harika, çünkü senkronizasyon ve versiyonlama konusunda endişelenmenize gerek yok, ancak çevrimdışı kullanım veya çok büyük dosyalar için ideal değil.

Çok doğrudan ve basit ve en iyi çözüm olarak buluyorum. Kullanmadığım tek şey, resimler ve filmler gibi büyük ortamlar çünkü tüm dosyalara ağ üzerinden erişilebiliyor. Rsync ile senkronize ettiğimi.

SSHFS belgelerine bağlantı -> http://fuse.sourceforge.net/sshfs.html

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.