Многократная загрузка файлов в Sails.js с помощью sails-hook-uploads из Vue.js: ETIMEOUT - PullRequest
0 голосов
/ 02 октября 2018

Я пытаюсь выгрузить несколько файлов через патч с моего внешнего интерфейса Vue на свой сервер Sails.Для каждого продукта может быть один эскиз и несколько деталей изображения.По запросу от Vue я настроил объект FormData, который включает в себя изображения (1 миниатюру, n подробных изображений)

function buildMultipartFormDataObject(data) {
  let formData = new FormData()
  //append text before images
  if(data.thumbnail) formData.append('thumbnail', data.thumbnail)
  if(data.images) {
    for(let i = 0; i < data.images.length; i++) {
      formData.append(`images[${ i }]`, data.images[i])
    }
  }
  return formData
}

В моем контроллере парусов я делаю следующее для загрузки файлов

module.exports = async function update (req, res) {
  // ...
  let productImagesDirname = require('path').resolve(sails.config.appPath, 'assets/images/products/')

  //uploadOne() and upload() are from 'sails-hook-uploads'
  let uploadedThumbnail = await sails.uploadOne(req.file('thumbnail'), { dirname: productImagesDirname })
  let uploadedImages = await sails.upload(req.file('images'), { dirname: productImagesDirname })

Моя миниатюра загружается, как и ожидалось, но для изображений, которые я получаю

Ошибка: EMAXBUFFER: истекло время ожидания восходящего потока (images[0]), прежде чем он был подключен к приемнику.Он все еще не использовался после ожидания 4500мс.Вы можете настроить этот тайм-аут, изменив параметр maxTimeToBuffer.

для каждого изображения (image [0] ... image [n]) и сразу после

Ошибка: ETIMEOUT: истекло время ожидания восходящего (images) файла (ов).После ожидания 10000 мс не было отправлено ни одного файла.

, даже если я хочу только загрузить изображения (закомментированное добавление миниатюр в sails & vue).Итак, очевидно, что паруса отсутствуют images в Uploadstream?

Поле _files восходящего потока req.file('thumbnail') содержит объект потока

debug: Upstream {
  _fatalErrors: [],
  _files: [ { stream: [Object], status: 'bufferingOrWriting' } ],

Поле _files поля req.file('images') Вверх по течению пусто, но я не понимаю, почему

debug: Upstream {
  _fatalErrors: [],
  _files: [],

Есть какие-нибудь идеи?

...