Файл Multer не удаляется, если загрузка отменена

#node.js #storage #multer

#node.js #Хранение #множественный

Вопрос:

Есть ли в Multer какая-либо функция для удаления загруженной части файла с сервера, если запрос отменяется

Ответ №1:

Это ошибка в multer в течение очень долгого времени. Смотрите эту проблему на github:https://github.com/expressjs/multer/issues/259, где в диалоге перечислены различные обходные пути.

В нашем проекте мы в настоящее время используем форк «kyleerik / multer #kyleerik-patch-1», который упоминается в этом комментарии, и до сих пор он работал нормально.

Ответ №2:

Вот мой подход, который сработал для меня

 
filename: (req, file, cb) => {
    const uniqueSuffix = Date.now()   '-'   Math.round(Math.random() * 1e9);
    const fileName =
      file.fieldname   '-'   uniqueSuffix   path.extname(file.originalname);
    cb(null, fileName);    
    req.on('aborted', () => {
      const fullFilePath = path.join('uploads', 'videos', fileName);
      file.stream.on('end', () => {
        fs.unlink(fullFilePath, (err) => {
          console.log(fullFilePath);
          if (err) {
            throw err;
          }
        });
      });
      file.stream.emit('end');
    })
  }