我正在使用multer diskstorage 将文件保存到磁盘上。 我先将它保存到磁盘上,并对文件进行一些操作,然后使用另一个函数和库将它上传到远程存储桶。 一旦上传完成,我希望从磁盘上删除它。
var storage = multer.diskStorage({
destination: function (req, file, cb) {
cb(null, '/tmp/my-uploads')
},
filename: function (req, file, cb) {
cb(null, file.fieldname + '-' + Date.now())
}
})
var upload = multer({ storage: storage }).single('file')
这是我如何使用它:
app.post('/api/photo', function (req, res) {
upload(req, res, function (err) {
uploadToRemoteBucket(req.file.path)
.then(data => {
// delete from disk first
res.end("UPLOAD COMPLETED!");
})
})
});
如何使用diskStorage的remove函数来删除临时文件夹中的文件?
https://github.com/expressjs/multer/blob/master/storage/disk.js#L54
更新:
我已决定将其模块化并放在另一个文件中:const fileUpload = function(req, res, cb) {
upload(req, res, function (err) {
uploadToRemoteBucket(req.file.path)
.then(data => {
// delete from disk first
res.end("UPLOAD COMPLETED!");
})
})
}
module.exports = { fileUpload };
req.file.path
。我学到了两个新东西(在看到这个之前,我昨天还在手动封装 fs 方法以便与 async-await 一起使用)。 - user3773048const fs = require('fs').promises
。 - kokokofs.unlink
是默认异步的,还有fs.unlinkSync
是同步的。 - Syed M. Sannan