2

我正在构建一个处理图像上传的应用程序,当图像上传时,我想制作 3 个缩略图,并将它们上传到 Amazon S3。

现在我想知道是否有库可以在图像上传、处理并最终以异步流程流式传输时执行此操作。

解决这个问题最合乎逻辑的方法是将文件上传到服务器,一旦上传完成,创建3个缩略图,然后将它们全部上传到Amazon S3并删除上传的文件。

但我不希望任何磁盘 I/O 参与,也不希望存储。

4

1 回答 1

2

为 nodejs尝试gm lib 。

在这种情况下,您应先将原始图像下载到服务器。然后您可以将其发送给 gm 以异步创建所有缩略图。

作为输入 gm 接受可读流,因此无需先保存图像。它也返回流,因此您可以直接将其发送到 S3。

Gm 非常快速且易于使用。它取决于 imagemagick 或 graphicsmagick 库(我的选择是 graphicsmagick,因为它更轻更快)。

不幸的是,gm 在处理图像之前会将图像保存在磁盘上,尽管您不会注意到它正在查看您的代码。但它自己处理所有清理工作,所以你不必关心它。

我认为您不会找到完全没有任何磁盘 I/O 的 nodejs 图像处理库。

于 2012-09-20T00:21:48.197 回答