我们可以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一个不存储图像到本地系统的方式?
从Multer信息页面https://www.npmjs.com/package/multer
如果inMemory选项为真 – 没有数据写入磁盘,但数据保存在文件对象中可访问的缓冲区中。
在multer
之前,您无法将multer
configuration为在本地存储文件。
但是, 男人只是男人的包装。 所以,如果我们想避免碰到磁盘,我们可以直接尝试使用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 })