Я пытался использовать multer-s3-transform при загрузке моей фотографии в s3, но перед этим мне нужно преобразовать изображение в файл намного меньшего размера, используя imagemin.Я смог сделать это с помощью Sharp, но все еще хочу попробовать это с помощью Imagemin, чтобы специально установить качество.
Это то, что я сделал с помощью Sharp.Мне нужно найти способ, как сделать это, используя imagemin
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, но это не сработало
const buff = async (image, path) => {
const files = await imagemin([image], path, {
plugins : [
imageminJpegtran(),
imageminPngquant({quality: '65-80'})
]
})
}
это часть преобразования впервый код
transform: async function(req, file, cb) {
const files = await buff(file.originalname, 'location')
cb(null, sharp().resize(null,null));
}
Я получаю сообщение об ошибке: uncaughtException: dest.on не является функцией