5

イメージをmongoのgridfsに保存し、バックグラウンドでS3に非同期アップロードした後に保存する方法はありますか?

アップローダを連鎖させることは可能でしょうか?

次の問題: 複数のサーバーが使用されるため、ハード ドライブ イメージに保存され、バックグラウンド プロセスを実行すると、異なるサーバー上で実行される可能性があります。

また、1. s3 にアップロードされたときに gridfs から削除する必要があります。2. 対応するエンティティが破棄されたときに、s3 から自動的に削除する必要があります。

ありがとう。

4

2 に答える 2

1

導入アーキテクチャはどのようなものですか? 「複数のサーバー」と言うとき、私は少し混乱しています-複数のmongodインスタンスを意味しますか? また、要件を指定するときに少し混乱します。要件 1 に従って、S3 にアップロードする場合、gridfs ファイルを削除する必要があります。ただし、要件によると、S3 と Gridfs の両方に存在することはできないため、要件 2 は最初の要件と矛盾しているようです。つまり、そもそも gridfs に存在するべきではありません。Gridfs と S3 の両方でいくつかのファイルを保存していますか?

レプリカ セットまたはシャード クラスターで実行している場合は、gridfs コレクションにテーラブル カーソルを作成できます (推奨されませんが、単一ノードでこれを行うこともできます)。挿入操作 ('op':'i' のようになります) が表示されたら、スクリプトを実行するか、アプリケーションで何かを実行して、gridfs からファイルを取得し、適切なファイルを s3 にプッシュします。同様に、削除操作 ('op':'d') が表示されると、s3 からファイルをすぐに削除できます。

テーラブル カーソルの利点は、非同期操作が可能になることです。別のサーバーで oplog を監視し、適切なアクションを実行する別のプロセスを持つことができます。

于 2013-08-01T21:20:02.460 に答える