首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用multer-s3转换图像?

如何使用multer-s3转换图像?
EN

Stack Overflow用户
提问于 2020-10-25 21:21:38
回答 1查看 48关注 0票数 1

我正在尝试在上传到亚马逊S3之前调整图像的大小。我已经找到了关于如何实现这一点的文档,但我怀疑我的实现是不正确的。我包含了下面的代码。我做错了什么?

代码语言:javascript
复制
const multerFilter = (req, file, cb) => {
  if (file.mimetype.startsWith('image')) {
    cb(null, true);
  } else {
    cb(new AppError('Not an image! Please upload images only.', 400), false);
  }
};

const upload = multer({
  storage: multerS3({
    s3: s3,
    acl: 'public-read',
    bucket: 'BUCKETNAME',
    contentType: multerS3.AUTO_CONTENT_TYPE,
  }),
  fileFilter: multerFilter,
  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().resize(100, 100).jpg());
      },
    },
  ],
});
EN

回答 1

Stack Overflow用户

发布于 2020-10-26 00:12:30

我能够弄明白这一点。下面的代码工作,使用来自npm的multer-s3-image-transform。

代码语言:javascript
复制
const upload = multer({
  storage: multerS3({
    s3: s3,
    acl: 'public-read',
    bucket: 'BUCKETNAME',
    contentType: multerS3.AUTO_CONTENT_TYPE,
    transforms: () =>
      sharp().resize(250, 250).jpeg({
        progressive: true,
        quality: 80,
      }),
  }),
  fileFilter: multerFilter,
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64524174

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档