静的ファイル ストレージ (複数の地理的な場所でホストされている) に代わるオプションを評価しています。
- Microsoft.NET プラットフォーム (C#、ASP.NET、WEB API、SQL SERVER) を使用しています。
- デジタル アセット、主にバイナリ (AI、PSD、JPG、PNG、PDF、XLS、DOC...) ファイルを任意の NoSQL DB に保存したいと考えています。
- 画像ファイルの場合、サムネイル (小さいサイズ) から元のアートワーク (大きいファイル: 300 MB から 1 GB 以上の範囲) を含めることができます。
- サムネイルは Web ページに表示されますが、オリジナルは編集オプション付きの添付ファイルとして利用できます (ユーザーはオリジナルをダウンロードし、それぞれのプログラムを使用して編集し、バージョンを更新できます)。
- 各サムネイルとオリジナルには、複数のバージョンを保存する必要があります。
- これらのデジタル資産をサードパーティのプラットフォーム (Amazon S3、Azure など) や CDN でホストすることはありません。
- このデジタル資産は、ユーザーのシステム構成に基づいて、さまざまな地理的環境でホストできます。(米国のユーザーは、米国、ヨーロッパ、またはアジア ベースのサーバー/データベースのいずれかを格納できます)。
- 各ストレージを複製する必要があります。
これについては、MongoDB を検討しています。上記の仮定または他の代替案に基づいて、誰かが長所と短所を提案できますか?
MongoDBの調査のいくつかは明らかにしています...
- ディスク容量の消費は生データのサイズの 3 倍
- -oplogSize パラメータでスペース消費を削減できた
- チャンクとストリームをブラウザーに読み取ろうとすると、静的ファイル ストアから読み取るよりも 6 倍遅くなる可能性があります。
- レプリケーションは双方向ではなく、マスターとスレーブとして機能します。
静的ファイル システムからデジタル アセットを読み取り、MongoDB GridFS のデフォルト チャンクに格納するプロトタイプを作成しました。サムネイルとオリジナルをMongoDBに保存するためのより良いアプローチは何ですか? サムネイルは常に 16MB 未満ですが、オリジナルは 16MB を超えることはできません。したがって、デフォルトでは、すべての画像アセットを GridFS に保存する必要がありますか?
たとえば、PDF、Excel、Word 用に 1 つ、画像用に 1 つなど、コンテンツ タイプに基づいて異なる DB を作成することを想定できます。
- 異なるサーバー間でどのように複製できますか?
- 異なるリージョンの異なる MongoDB インスタンス間でどのように保存できますか?
ご意見をいただければ幸いです。
ありがとうございました。