Есть ли способ сохранить два изображения одновременно, используя только одно поле? - PullRequest
0 голосов
/ 29 сентября 2018

Я хочу сохранить два изображения оригинала и изменить размер одного (для миниатюры)

, и я использую только одно поле для изображения

, но я думаю, что multer сохранил оригинал уже на S3, поэтому яне удалось сохранить измененный размер на S3.

Есть ли способ сохранить оба изображения одновременно, используя только одно поле?

const single = upload.single('img')

 single(req, res, function (err) {
            if (err) {
                return res.status(400).json({
                    message: errorMessage.UNEXPECTED_FIELD_ERROR + ' (img)'
                })
            }

            let img = req.file //img is already stored on S3 
                            //Now I can't store my thumbnail on S3!

gm(request(img.location))
          .thumbnail('50', '50', '!')
          .stream(function (err, stdout, stderr) {
            if(err) console.log(err)

            var writeStream = fs.createWriteStream('/tmp/resized.jpg');
            stdout.pipe(writeStream);
          });
          //...

1 Ответ

0 голосов
/ 30 сентября 2018

https://www.npmjs.com/package/multer-s3-transform#transforming-files-before-upload

var upload = multer({
  storage: multerS3({
    s3: s3,
    bucket: 'some-bucket',
    shouldTransform: function (req, file, cb) {
      cb(null, /^image/i.test(file.mimetype))
    },
    transforms: [{
      id: 'original',
      key: function (req, file, cb) {
        cb(null, 'image-original.jpg')
      },
      transform: function (req, file, cb) {
        cb(null, sharp().jpg())
      }
    }, {
      id: 'thumbnail',
      key: function (req, file, cb) {
        cb(null, 'image-thumbnail.jpg')
      },
      transform: function (req, file, cb) {
        cb(null, sharp().resize(100, 100).jpg())
      }
    }]
  })
})

Я использовал преобразования, которые предлагает multer-s3-transform, но в последней версии нет опции преобразования, поэтому я использовал эту копию кода и вставил на свойs3-transform lib

https://github.com/badunk/multer-s3/pull/56/files

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...