我们可以configurationmulter不在本地存储文件,只能使用req.files.image.path?

我的应用程序需要如下:我将图像上传到Cloudinary并将图像的URL存储在我的mongodb数据库中。

要上传图像到cloudinary,我需要给文件path,为此,我使用multer.I使用声明:

app.use(multer({dest:'./uploads/'}));

我面对的问题是,每当我从本地系统上传一个图像到Cloudinary上的数据库时,本地副本就会在'./uploads/'中创build。我想这不会发生,因为我的图像在Cloudinary上。

我读了它的说明文件的multer :

Multer接受一个选项对象,其中最基本的是dest属性,它告诉Multer在哪里上传文件。 如果省略选项对象,文件将被重命名并上传到系统的临时目录。

我无法确定,如果临时上传空间需要清理或如果照顾。我的图像上Cloudinary.I使用Muller只为获取:

req.files.photo.path

工作。是否还有其他方法可以做到这一点,或者如果可以configuration一个不存储图像到本地系统的方式?

       

网上收集的解决方案 "我们可以configurationmulter不在本地存储文件,只能使用req.files.image.path?"

从Multer信息页面https://www.npmjs.com/package/multer

如果inMemory选项为真 – 没有数据写入磁盘,但数据保存在文件对象中可访问的缓冲区中。

multer之前,您无法将multerconfiguration为在本地存储文件。

但是, 男人只是男人的包装。 所以,如果我们想避免碰到磁盘,我们可以直接尝试使用busboy
Connect-bubsboy将帮助我们:

 app.use(busboy()); // request handler req.busboy.on('file', function(fieldname, file, filename, encoding, mimetype) { file.on('end', function() { // do stuff with req.files[fieldname] }); }); 

2016年10月14日更新

现在multer有MemoryStorage存储文件作为缓冲区。

 var storage = multer.memoryStorage() var upload = multer({ storage: storage })