首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用Multer-S3变换上传到s3前用图像转换图片

用Multer-S3变换上传到s3前用图像转换图片
EN

Stack Overflow用户
提问于 2019-05-24 03:24:01
回答 1查看 558关注 0票数 2

我试图使用Multer-S3Transform将我的照片上传到s3,但在此之前,我需要使用imagemin将图像转换为更低的文件大小。我可以用锐利做它,但仍然想尝试它使用形象,以具体设置的质量。

这就是我用夏普做的事。我需要找到一种用imagemin做这件事的方法

代码语言:javascript
复制
const multerS3Obj = multerS3({
    s3 : s3,
    bucket : config.amazon.s3.bucketName,
    acl : "public-read",
    contentType : multerS3.AUTO_CONTENT_TYPE,
    metadata : function(req, file, cb) {
        const metadataObj = Object.assign({}, req.body);

        metadataObj.content_type = file.mimetype;
        metadataObj.filename = file.originalname;

        cb(null, metadataObj);
    },
    shouldTransform: function(req, file, cb) {
        cb(null, /^image/i.test(file.mimetype));
    },
    transforms: [
        {
          key: function(req, file, cb) {
            const refType = req.params.refType,
                refId = req.params.refId,
                subfolder = `uploads/${refType}/${refId}/`;
                cb(null, subfolder + file.originalname);
          },
          transform: function(req, file, cb) {
            cb(null, sharp().resize(null,null));
          }
        }
    ]
});

这就是我用imagemin做的,但是它没有起作用

代码语言:javascript
复制
const buff = async (image, path) => {
    const files = await imagemin([image], path, {
        plugins : [
            imageminJpegtran(),
            imageminPngquant({quality: '65-80'})
        ]
    })
}

这是第一个代码中的转换部分。

代码语言:javascript
复制
transform: async function(req, file, cb) {
    const files = await buff(file.originalname, 'location')
    cb(null, sharp().resize(null,null));
}

我一直收到错误: uncaughtException: dest.on不是一个函数

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-05-24 06:23:21

我解决了这个问题。而不是用imagemin来设置图像的质量,发现锐利支持图像质量的设置。

代码语言:javascript
复制
let quality = ''
if (file.mimetype === 'image/jpeg') {
    quality = sharp().jpeg({quality: 50})
} else if (file.mimetype === 'image/png') {
    quality = sharp().png({quality: 50})
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56285445

复制
相关文章

相似问题

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