multer не работает должным образом при получении файла из браузера через промежуточный сервер - PullRequest
0 голосов
/ 12 мая 2019

Я реализую файловую службу магазина и использую 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) 
      })
    }

Я попытался покопаться в готовом модуле, обнаружил, что обратный вызов будет вызван, если запрос закончен или завершен, но этого не произошло.

Так что, если возможно, пожалуйста, помогите мне решить эту проблему.

Спасибо

...