5

ファイルのアップロードを中心に展開する単純な Web API を作成しています。ユーザーは、HTTP ベースの API を介してファイルをサービスにアップロードできます。サービスは、ユーザーがアクセスするファイルを生成し、アップロードされたファイルと共にそれらを保存する必要もあります。そのため、多くのファイルが再生されます。

基本的に、これらを CouchDB に保存するか、Amazon の S3 などに保存するかを決定しようとしています。

CouchDB を使用すると、おそらく、ユーザーが最初にアップロードしたファイル用に 1 つのドキュメントを作成し、添付ファイル データを _attachments コレクションにインライン化します。システムによって作成された追加のファイルがそのドキュメントに追加されます。(このサービスはドキュメント変換を行うため、Excel XLS をアップロードすると、システムが PDF、TXT などを生成します。) アップロードされたドキュメント レコードを 1 回削除すると、生成された PDF、TXT、またはその他の添付ファイル。

S3 では、個々のファイル ストレージ専用のホスト型ソリューションを使用していることを知っているので、安心感があります。また、その帯域幅はそれらのファイル専用であり、API Web サーバーからのものではありません。欠点は、API コードに多くの追加ロジックが追加されることです。そのため、多くのリモート ファイルを、ローカルの CouchDB データベースが認識しているものと同期させる必要があります。また、エンドユーザーが S3 から直接ファイルにアクセスできるようにする場合は、リクエストの署名など​​に対処する必要があります。ドキュメントはすべて個別に保存されるため、ユーザーがアップロードした添付ファイルを CouchDB から削除するには、他のファイルについても S3 に対していくつかの削除クエリを実行する必要があります。

私は S3 に精通しており、現在のプロジェクトで使用していますが、CouchDB は添付ファイルを許可する方法が非常に優れているように見えます。使ってみたいのですが、デメリットやデメリットはありますか?多くのアップロードされたファイルが保存されている上記のシナリオでは、CouchDB の添付ファイルは S3 よりも理にかなっていますか?

4

3 に答える 3

1

私の経験では、大量のバイナリ オブジェクトが関係する場合、データベース エンジンは、そのために特別に構築されていない限り、やや不安定になります。

私は CouchDB 内に (低解像度の) 画像を保存していましたが、数ギガバイトの添付ファイルの前に壁にぶつかりました。そのため、アタッチメントを S3 に移動し、後戻りすることはありませんでした。

于 2020-11-20T13:24:38.110 に答える
0

どちらの解決策も非常に賢明です。長所と短所があります。

CouchDBの添付ファイルとしてファイルを保存することについて言及しなかった利点の1つは、ファイルがデータとともに複製されることです。これにより、継続的なバックアップが容易になり、スナップショットでデータがファイルと整合性を保つようになります。

于 2013-01-27T11:34:53.863 に答える
0

私は、多くのプロジェクトといくつかの同様のプロジェクトでcouchdbをうまく使用してきました。あなたはcouchdbを使ってボックスオブボックスでたくさんのものを手に入れます. 私が持っている質問は、ファイルの平均サイズと、データベースがどれくらい大きくなると思いますか?

于 2012-12-27T18:08:58.823 に答える