Я создал приложение drag-n-drop electron
и использую multer
с node
для загрузки файлов на сервер express
, на котором я работаю.
Всякий раз, когда язагрузите файлы, если они достаточно большие (сотни МБ), как и ожидалось, для фактического копирования файлов в локальное хранилище требуется время.
Мой вопрос: откуда мне знатькогда файлы были успешно загружены в хранилище файлов ? В приведенном ниже коде в 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);
})