2

画像のアップロードを処理するアプリケーションを構築しています。画像がアップロードされたら、そのサムネイルを3つ作成して、AmazonS3にアップロードします。

ここで、画像がアップロードされ、処理され、最終的に非同期フローでストリーミングされる間にこれを実行できるライブラリがあるかどうかを知りたいと思います。

この問題を解決する最も論理的な方法は、ファイルをサーバーにアップロードし、アップロードが完了したら、そのサムネイルを3つ作成し、それらすべてをAmazon S3にアップロードして、アップロードされたファイルを削除することです。

しかし、ディスクI / Oが関与したり、ストレージが関与したりすることは望んでいません。

4

1 に答える 1

2

nodejs の gm lib を試してください。

この場合、最初に元のイメージをサーバーにダウンロードする必要があります。次に、それを gm に送信して、すべてのサムネイルを非同期に作成できます。

入力 gm は読み取り可能なストリームを受け入れるため、最初に画像を保存する必要はありません。いずれかのストリームを返すため、S3 に直接送信できます。

Gm は本当に速くて使いやすいです。これは、imagemagick または graphicsmagick lib のいずれかに依存します (私の選択は、より軽量で高速なため、graphicsmagick です)。

残念ながら、gm は画像を処理する前にディスクに保存しますが、コードを調べても気付かないでしょう。ただし、すべてのクリーンアップはそれ自体で処理されるため、気にする必要はありません。

ディスク I/O から完全に解放された nodejs 画像処理ライブラリが見つかるとは思いません。

于 2012-09-20T00:21:48.197 に答える