自宅で自分のDropbox / Ubuntu Oneサーバーを作成する方法は?


70

自宅で「Dropbox、Ubuntu One」サーバーを作成する方法を教えてくれるリソースを知っている人はいますか?

私はこれらのサービスのアイデアが本当に好きですが、私は自分の「もの」をクラウドに入れたくありません。理想的には、LinuxおよびWindowsで実行されるクライアントが必要です。

Ubuntu 10.04でiFolderをセットアップしようとしましたが、今のところ成功していません。


私は問題を理解しているかどうかわかりません。Dropboxの何が問題になっていますか?
オリ

ストレージにはいくつかの制限があり、多くのプロジェクトで多くの協力者がいるため、50 GiBを支払った人はかなり早く失われます。
ヘンリック

4
Dropboxなどの企業が個人データを保存できるようにすると、予期しない結果が生じる可能性があります。ありがたいことに、プラグスタイルのARM搭載コンピューターで独自のパーソナルクラウドを実行できるOSを作成するプロジェクトが進行中です。
daithib8

2
皮肉なことに、これはのように単純ではありませんsudo apt-get install ubuntu-one-server
Prateek

回答:


41

現在、すぐに使用できる優れたオープンソースの代替手段はありません。注目すべき最高のものは、sparkleshareプロジェクトです:http : //www.sparkleshare.org/

うまくいけば、それは素晴らしいものに成長し、自分でやる、代替案になるでしょう。


2
残念ながら、バイナリデータの変更によりサーバーのスペース使用量が増大するため、git DVCSをバックエンドとして使用しており、1 TB未満のバイナリデータには適していません。しかし、それは有望に見えます。
数学

44

実際にはたくさんあります。

  • github GUIベースの同期ソフトウェアでのSparkleShare(deps:git / subversion、mono、python)。

    a。バージョン管理:ソース管理システムを介して、したがってバージョン番号を介して中央サーバーに基づいてミューテックスになります。

    b。状態:開発中

    c。長所:OSS、モノベースで簡単に変更可能、短所:ユーザーレベルのプロセス、GC依存、非効率的な共有プロトコル。高レベルのツールを使用します。

  • lipsync(deps:Unison、rsync)コマンドラインサービスベースのソフトウェア。

    a。バージョン管理:rsync delta algoritmを使用。プログラマーは競合解決を選択する必要があると思います。

    b。状態:ソースコードが見つからないため、わかりません。彼のgitリポジトリにあるのはバイナリだけです。

    c。長所:中間レベルのツールを使用した素晴らしいセットアップ。

  • iFolder-ノベルのDropbox。私はまだそのソースを研究していません。この編集をやり直したいだけで、もし興味があるならもっと追加します。

    a。バージョン管理:

    b。状態:パッケージは言うまでもなく、Ubuntuでコンパイルするのにも問題があります。詳細なインストールガイドがあります。

    c。長所:Windows X64クライアント、成熟した、ACLとのAD統合、他のプロジェクトが実装し始めていない機能。これは良い出発点になると思います。短所:Novellは、パブリックsvnリポジトリをプライマリリポジトリとして使用せず、コードド​​ロップのみを行う場合があります。しかし、私はこれについて正確には知りません。Ubuntuに簡単にインストールするにはopenSUSEに結合しすぎている可能性があります。そのアルゴリズムをチェックアウトする。

  • scp / rcp-rsyncを支持して廃止予定

  • DRDB-分散RAID-1のブロックデバイスミラーリングツール、つまりDropboxのサーバーバリアント。ソースコードはまだチェックアウトしていませんが、Linuxのみです。実際のアルゴリズムは、おそらくこのソフトウェアリストの下にある私の考えのソースコードと簡単に組み合わせることができます。

    a。バージョン管理:LAN / WANを介した内部メッセージ形式

    b。状態:十分に成熟しているようです

    c。長所:Linuxに十分な安定性、短所:他のオペレーティングシステムはサポートされていません


現在、仮想化Windows 7でのコンパイル時間の改善について調査しています。仮想化Windows 7では、金属上のWindows 7でのコンパイル時間は40秒ですが、約3分20秒で仮想化されています。NTFS上の選択したフォルダーのRAMディスクのように見えるライトスルーキャッシュであるioctlドライバーを作成することを考えています。

上記のソフトウェアを使用すると、2〜3人で1週間のフルタイム開発を行えば、上記のソフトウェアを組み合わせてファイルを失うことのない使用可能なAlphaが生成されます。


私のシステムでは、一般的な考え方は次のようになります。

  1. 仮想ドライブ\?{GUID}、つまりRAMディスクとRWキャッシュをマウントします。この仮想ドライブを作成するソフトウェアは、2つの入力パラメーターを取ります(これは重要です)。

    a。ターゲットフォルダー。これはSMBフォルダーなので、オペレーティングシステムのネットワークスタックに実際のIOを処理させます。私の場合、これはVMWare仮想フォルダーであり、それ自体がext4ドライブ上のターゲットを持っていますが、SAMBA / SMBを使用するファイルサーバーにすることも簡単です。

    b。マウントするフォルダーのパス、たとえばC:\ ramdisk

    仮想ボリュームを作成するためのこのコードは、(他のファイルの中でも)/Driver/DriverFilter.cにあるTrueCryptのコードから取得されます

  2. ドライブはSMB / VMWare /ネットワークプロトコルを使用して、起動時にデータを取得します。ネットワークから非同期で低いタスク優先度でフェッチし、キャッシュを満たします。単純な圧縮アルゴリズムを使用し、1つのスレッドでメッセージボックス型の継続渡しを使用して優れたパフォーマンスを得ることができます。Windowsでは通常の非同期IO呼び出しを使用でき、Linuxではepoll / inotify実装を使用してnginxからコードを取得できます。

  3. ram-diskである私のサービスは、名前のないramdiskドライブをNTFSフォルダーとしてマウントします。すべてのプログラムは、C:\ ramdisk、または私がそれを呼ぶものに書き込みを続けることができます。

  4. ネットワークからの非同期コピーはまだ進行中です。約100 MiB / sの読み取り速度と2 GiB ramdiskでは、すべてのデータを読み取るのに20.5秒になります。

readを呼び出すたびに、CPU内でインデックスの固定計算が実行され、n:ulong GiBの最大サイズの配列に固定されます。ただし、競合の解決または読み取り/書き込みロックが必要です。Microsoft Syncを介して利用できるような競合解決アルゴリズムを実装する場合、競合する各チャンクをメッセージとして別の競合解決プロセスに渡すことができます。Dropboxは、新しいファイルを作成し、「PrevFileName Username's Conflicted Copy(yyyy-MM-dd).ext」という名前を付けることでこれを解決します。おそらく、単一のソースに対してコンパイルしている場合、小さなウィジェットでこれを変更できます-ウィジェットは未解決の変更をメッセージ/イベントとして検出し、競合解決プロトコルを選択します。そのため、フォルダを排他モードでプログラミングする場合、Windows VMはウィジェットを「排他」に設定できます。

これにはこれらのPROがあります

  • ノンブロッキング/非同期になります
  • 仮定を立てますが、1台のコンピューターがほとんどファイルに書き込むことを要求しません。
  • 任意の大きなファイルで機能します
  • 上記のプロジェクトを結び付けることにより、* nixとWindowsで動作します。
  • 高い読み取りパフォーマンスが必要な場合に機能します(つまり、ファイルは物理的にディスク上にあります)
  • 競合するイベントに到達すると、ユーザーがさまざまな種類のイベント(つまり、さまざまな種類のファイル)に対して正常に動作するプラグインを作成/ダウンロードできるユーザーインターフェイスアプリを提供できます。たとえば、テキストファイルをKompare / WinDiffで起動し、バイナリを複製して別のファイルとして保存できます。

lipsyncのbinフォルダには、バイナリではなくシェルスクリプトが含まれています。
haggai_e



3

私はこれがあなたが探しているものとは全く違うと思いますが、それはあなたの意図する使用法に依存します。

CrashPlanはバックアップソフトウェアパッケージおよび関連するオンラインバックアップホスティングサービスですが、違いは、ソフトウェアには、インターネット(またはLAN)経由でソフトウェアを実行している別のPCにデータをバックアップできるモードがあることです。

これは、宛先がクラウドにある必要がないことを意味します。どこからでもファイルを同期してアクセスするのではなく、バックアップすることのほうがDropboxのようなものではありませんが、バックアップだけが必要な場合はうまく機能します。他のPCからバックアップファイルにアクセスしたい場合、「ローカルリストア」を実行できると思いますが、私が試したことではありません。

基本的なソフトウェアパッケージは無料で、「別のコンピューターへのバックアップ」モードをサポートしますが、スケジュールされたバックアップのみを行いますが、スケジュールされたバックアップだけでなく、コストとリアルタイム同期も行うソフトウェアの「プロ」バージョンがあります。(クラウドストレージも月ごとのオプションの追加料金です)


3

クライアントにはUnisonを使用し、サーバーのバックアップにはrsnapshot(perlスクリプトを使用したrsync)を使用します。


2

これが役立つかどうかを確認します。

http://fak3r.com/2009/09/14/howto-build-your-own-open-source-dropbox-clone/


-1これが最良の解決策ではないと思うので、答えではありません。
ヘンリック

-1これは、ソリューションのようなDropboxではなくrsyncサーバーです...-
アーマン

1
このソリューションは、別の記事にリンクしているだけなので、有用性が制限されており、リンク腐敗のリスクがあります。この回答は、特定のリンクをソースとして引用するだけでなく、より実質的になるように編集する必要があります。
クリストファーカイルホートン

これは理論的には質問に回答するかもしれませんが、回答の重要な部分をここに含め、参照用のリンクを提供することが望ましいでしょう
ティム

2

レプリケートフォルダーで2台(またはそれ以上)のマシンをセットアップする場合は、glusterfsをご覧ください。

GlusterFSユーザーガイドに従うと簡単にセットアップできます。


GlusterFSクラスター内では、クライアントが他のユーザーに接続されている間、ファイルは同期されますが、ファイルシステムは、他のユーザーから切断されたクライアントに対してローカルで利用可能であると言っていますか?私はこれを使用してラップトップとサーバーを同期することを考えています。
ライアントンプソン

はい。テストはまだ完了していませんが、問題なく動作するようです。
リチャードホロウェイ

これはWindowsでは機能しないため、「Dropbox準拠」ではありません。
ヘンリック

2

誰も言及していないbitorrent同期?Ubuntu、Windows、多くの一般的なスマートフォンOS、raspberry piなど、あらゆるもので実行できます。暗号化された転送、クラウドに保存されていないファイル(bittorrentがトラッカーを実行していると思いますが)、合理的に高速、選択的にフォルダーを共有でき、複雑さはほとんどなく、キーをコピーして他のキーに貼り付けるだけですシステム。

セットアップが完了すると、機能します。


1

私は上の私の目を光らせていAeroFS。クラウドのストレージがオプションであるDropboxのようなサービスである可能性があります。モバイルサポートを実装するかどうか、いつ実装するかはわかりません。そのためには、これらのファイルもクラウドに同期する必要があります。私は主に、Windows、Mac、Linuxコンピューター間のかなり痛みのない同期ソリューションに興味があります。

これらは初期のベータ版ですが、必要に応じて招待にサインアップできます。


1

私は、Apache Webサーバー用にmod_dav(webdav)でapacheを使用し、それをドライブとしてマウントし、Web経由でファイルをアップ/ダウンロードできます。これは非常に簡単ですが、あなたのニーズをカバーするかもしれません。


1

ここに興味深い選択肢がすでにリストされており、これは古い質問ですが、このトピックは明らかに時代遅れではなく、反対に、最後のプライバシー侵害イベントのためにますます重要になっていると確信しています。

したがって、自分の経験を共有したいと思います。ホストされているクラウド同様の環境に対する私の現在のソリューションはSeafileです。

Seafileの機能:

  • Webベースのクラウドアクセス
  • Linux、Windows、Mac、iOS(無料ではない)、Androidのクライアント
  • ユーザー/グループ管理
  • 異なるライブラリを介したファイル編成
  • クライアントソフトウェアを介した自動ファイル同期
  • パブリックリンクを作成してファイルを公開する可能性

私のSeafile体験:

  • インストールは非常に簡単で迅速でした!(物理ホストdmraid 5への共有を介してファイルが保存されている、スリムなdebian vm上)
  • クリーンで機能的なユーザーインターフェイス
  • クリーンで機能的なクライアントソフトウェア
  • ありませんでした何の機能的な問題は、今まで、私のために!(数週間後にこれを使用して)
  • 機能セットは基本的です(owncloudなどと比較して)が、ここではすべてが機能することを強調します!
  • 直接プロキシのサポートはありません(少なくともLinuxクライアントとWebインターフェイスでは!)。注:Webインターフェイスは機能しますが、Webインターフェイスを介したファイルのダウンロードはプロキシの背後では機能しません-これが何らかの形で可能かどうかわからない

プロキシサポートは必要ないので、Seafileには本当に満足しています!


0

SSHFSを使用して、サーバー上のディレクトリをデスクトップおよびラップトップのローカルディレクトリとしてマウントします。すべてのファイル変更はサーバーに直接保存されます。ただし、Dropboxとは異なり、ファイルはクライアントマシンにローカルに保存されません。同期とバージョン管理について心配する必要がないため、これは素晴らしいと思いますが、オフラインでの使用や非常に大きなファイルには適していません。

それは非常に直接的でシンプルであり、私はそれが最良の解決策であると思います。すべてのファイルがネットワーク経由でアクセスされるため、私が使用しないのは写真や映画のような大きなメディアだけです。私がRsyncと同期するもの。

SSHFSドキュメントへのリンク-> http://fuse.sourceforge.net/sshfs.html

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.