2012-09-19 117 views
2

我正在構建一個處理圖像上傳的應用程序,當圖像上傳時,我想製作3個縮略圖並上傳到Amazon S3。用於流處理圖像的Node.js庫

現在我想知道是否有圖書館可以做到這一點,而圖片上傳,處理,並最終流異步流。

解決此問題的最邏輯方法是將文件上傳到服務器,一旦完成升級,創建3個縮略圖,然後將它們全部上傳到Amazon S3並刪除上傳的文件。

但我不希望任何磁盤I/O涉及,也沒有存儲。

回答

2

嘗試gm lib for nodejs

在這種情況下,您應首先將原始圖像下載到服務器。然後您可以將它發送給gm以異步創建所有縮略圖。

由於輸入gm接受可讀流,所以不需要先保存圖像。它也會返回流,所以你可以直接發送到S3。

Gm是真正快速和易於使用。它取決於imagemagick或graphicsmagick lib(我的選擇是graphicsmagick,因爲它更輕,更快)。

不幸的是,gm在處理它們之前將圖像保存在磁盤上,儘管您不會注意到它在查看您的代碼。但它自己處理所有的清理工作,所以你不必關心它。

我不認爲你會發現完全沒有任何磁盤I/O的nodejs圖像處理庫。

+0

你碰巧有任何示例代碼來顯示它嗎?試圖完全正確地做到這一點,並有一點麻煩讓它工作。 –