Node.js将file upload到缓冲区而不是/ tmp

在Node.js应用程序中,是否可以直接将文件( multipart/form-data )上载到服务器上的缓冲区而不是将文件保存到文件系统?

在伪代码中,您通常使用file upload表单来完成此操作

 router.post('/upload', function(req, res, next){ // file is saved to /tmp/dk3idkalel4kidkek // do some processing on the file // manually save file to /www/myapp/uploads/originafilename.ext }); 

是否可以跳过关于将文件保存到/tmp ,只是将上传的文件捕获为缓冲区并直接将其stream式传输到目标目录?

一个例子是上传一个图像,然后优化图像,然后将其保存到预期的目的地。 你可以捕获传入的stream,优化它,然后保存,所有没有最初保存到/tmp目录?

Multer是一个用于处理multipart / form-data的node.js中间件,主要用于上传文件。 内存存储引擎将这些文件作为Buffer对象存储在内存中。 使用内存存储时,文件信息将包含一个称为缓冲区的字段,其中包含整个文件。

这应该正是你所需要的。

你可以在这里阅读更多

Multer模块使用busboy上传,所以另一种方法是使用busboy来快速连接:busboy