我创建了一个拖放式electron
应用程序,并将multer
与node
结合使用,将文件上传到正在运行的express
服务器上。
每当我上传文件时,如果文件很大(数百MB),如预期的那样,将文件实际复制到本地存储会花费一些时间。
我的问题是,我怎么知道何时将文件实际成功上传到文件存储区?在下面的代码中,initiateReadLogs()
中
我正在尝试使用fs.createReadStream(eventstream.split())
一次读取一行文件。但是,发生的是,当我读取文件时,它们似乎还没有完成保存到磁盘的操作(我使用fs.watch()
和fs.stats.size
检查了文件的大小还在增加),然后我获取重复的文件。
这是标准的设置端点的方式:
// multer storage configuration
var storage = multer.diskStorage({
destination:function(req,file,cb){
cb(null,LOG_LOCATION)
},
filename: function(req,file,cb){
cb(null,Date.now() + file.originalname);
}
});
var upload = multer({ storage:storage });
app.post('/uploadLogs', upload.any(), (req, res, next) => {
const files = req.files;
if (!files) {
const error = new Error('Please choose files')
error.httpStatusCode = 400
return next(error)
}
// Here I open a `ReadStream` to read each file
task.initiateReadLogs(files, LOG_LOCATION);
res.send(files);
})