Я реализую файловую службу магазина и использую multer для обработки загрузки файлов. Обычно, если я загружаю файлы из браузеров в службу, она работает правильно. Но теперь службе также необходимо обрабатывать файлы, отправленные с другого сервера.
На этом сервере, давайте назовем его промежуточным сервером, я также использую multer для хранения файлов загрузки, я создаю здесь свое собственное хранилище для немедленной потоковой передачи файлов в файловую службу вместо временного их хранения на дисках или в буферном хранилище.
Я следовал руководству от Потоковой передачи от Busboy, чтобы запросить сообщение , чтобы сделать это
Все работает очень хорошо, как я и ожидал, файлы успешно хранятся на сервере файловой службы. Но у меня возникает проблема, с которой я не могу справиться: файловая служба не отправляет ответ на промежуточный сервер.
После добавления большого количества журналов в multer я обнаружил, что функция onFinished никогда не запускает обратный вызов:
function done (err) {
if (isDone) return
isDone = true
req.unpipe(busboy)
drainStream(req)
busboy.removeAllListeners()
onFinished(req, function () {
console.log('onFinished callback -- multer completes the work, next');
next(err)
})
}
Я попытался покопаться в готовом модуле, обнаружил, что обратный вызов будет вызван, если запрос закончен или завершен, но этого не произошло.
Так что, если возможно, пожалуйста, помогите мне решить эту проблему.
Спасибо