現在、多くの企業がクラウドストレージサービスを提供していますが、各企業には独自の専用クライアントがあり、原則としてその機能は望まれていません。
既存の選択肢は多くの理由で私に合わなかったので、私は自分自身のユニバーサルクライアントを作成することにしました-shadowcloud
このようなもの:
何ができる
- Googleドライブ、Yandexディスク(WebDAV)、Cloud Mail.Ru、Dropboxへの直接ダウンロード(ローカルディスクを使用しない)
- デフォルトでは完全暗号化、アルゴリズムと設定の幅広い選択
- パスワードで保護されたデータベース
- チェックサムと重複排除
- ファイルサイズの制限を削除します
- 異なるリポジトリ間でファイルを複製または分割する
- 無制限のメディアストリーミング
- プレビューを作成し、メタデータとテキストドキュメントを抽出します
- バージョン管理ファイルとディレクトリ構造全体
- マークダウンノート、コードの強調表示
- リソースが埋め込まれたWebページをすばやく保存する
- インメモリファイルキャッシング
- FUSEを使用してローカルディスクとして使用(winfspが必要)
- オープンソース、ほぼすべての側面がshadowcloud.confで設定可能
使い方
それを使用するために必要です:
- 暗号化キーを生成します(後で他のデバイスにインポートする必要があります)
- クラウドストレージをセットアップする
- データ領域を作成してストレージを接続します(領域IDはすべてのデバイスで一致する必要があります)
その後、ファイルを含むパネルに移動し、地域を選択してドキュメントをアップロードできます。
実装について少し
このプログラムはScalaで記述されており、ほぼ完全にAkkaフレームワーク(actors、streams、http、persistence)上に構築されており、フロントエンドは完全にScala.jsで記述されています。
Bouncy Castleとオプションでlibsodiumが暗号化に使用されます(デフォルトのアルゴリズム:Blake2b / ChaCha20 / ECIES / ECDSA)。
Apache TikaとJavaCVは、サイズが大きいためライトバージョンから除外されています;ドキュメントからメタデータを抽出し、ビデオのプレビューを作成するために使用されます。