Не удается установить заголовки после отправки ошибки, при попытке загрузки на S3 - PullRequest
0 голосов
/ 19 мая 2019

Я пытаюсь заставить работать s3.

Я загружаю файл на вход файла:

input.uploadArtistPhoto-js.br3(type="file" name="photo" id="photo")

, затем на контроллер загружаю и изменяю размер:

exports.upload = multer(multerOptions).single('photo')

exports.resize = async (req, res, next) => {
  // check if there is no new file to resize
  if (!req.file) {
    next(); // skip to the next middleware
    return;
  }
  const extension = req.file.mimetype.split('/')[1]
  req.body.photo = `${uuid.v4()}.${extension}`
  // now we resize
  const photo = await jimp.read(req.file.buffer)

  await photo.cover(300, 300);
  // await photo.resize(800, jimp.AUTO);

  await singleUpload(req, res, function (error) {

    return res.json({'imageUrl': req.file.buffer})
  })

  next()
};

И singleUpload это файл:

// envs
aws.config.update({
    secretAccessKey: 'XXXXX',
    accessKeyId: 'YYYYY',
    region: 'us-east-1'
})

const s3 = new aws.S3()


const fileFilter = (req, file, cb) => {
  if (file.mimetype === 'image/jpeg' || file.mimetype === 'image/png') {
      cb(null, true)
  } else {
      cb(new Error('Invalid Mime Type, only JPEG and PNG'), false);
  }
}

const upload = multer({
  fileFilter,
  storage: multerS3({
    s3: s3,
    bucket: 'images',
    ACL: 'public-read',
    metadata: function (req, file, cb) {
      cb(null, {fieldName: file.fieldname});
    },
    key: function (req, file, cb) {
      cb(null, Date.now().toString())
    }
  })
})

module.exports = upload

И когда я пытаюсь загрузить файл, я получаю сообщение об ошибке: Can't set headers after they are sent

Есть идеи, в чем может быть проблема?

Я установил свои учетные данные, а также установил некоторые настройки и политику cors

...