在上传到nodejs中的S3之前,将图像转换为缩略图

时间:2017-07-08 21:36:07

标签: node.js amazon-s3 multer multer-s3

我一直在尝试multer-s3很多个小时,但我没有创建缩略图。谁能告诉我如何运行它?

以下是我的代码:

var upload = multer({
    storage: multerS3({
        s3: s3,
        bucket: 'test',
        // shouldTransform: function (req, file, cb) {
        //     cb(null, /^image/i.test(file.mimetype))
        // },
        acl: 'public-read',
        contentType: multerS3.AUTO_CONTENT_TYPE,
        shouldTransform : function (req, file, cb) {
            console.log('in should transform ', file)
            cb(null, /^image/i.test(file.mimetype))
        },
        transforms: [{
            id: 'original',
            key: function (req, file, cb) {
                console.log('original')
                cb(null, "original")
            },
            transform: function (req, file, cb) {
                console.log('original1')

                cb(null, sharp().jpg())
            }
        }, {
            id: 'thumbnail',
            key: function (req, file, cb) {
                console.log('thumbnail')

                cb(null, "thumbnail")
            },
            transform: function (req, file, cb) {
                console.log('thumbnail1')

                cb(null, file.resize(100, 100).jpg())
            }
        }]
    })
})


 app.post('/upload', upload.single('image'), extendTimeout, function(req, res, next) {
        console.log('filessss ', req.file )
        res.send('Successfully uploaded ' + req.file + ' files!')
    })

原始图片上传成功,但调整后的图片不是。有人可以指导我吗?

由于

1 个答案:

答案 0 :(得分:1)

缩略图的变换方法中存在拼写错误。 而不是

cb(null, file.resize(100, 100).jpg())

应该是

cb(null, sharp().resize(100, 100).jpg())