Я хочу использовать следующую библиотеку для сжатия изображений https://github.com/imagemin/imagemin
Проблема заключается в том, что когда пользователь загружает данные с помощью формы, как мне подключить сведения о файле из формы к минимальному плагину изображения? Например, если поле формы файла называется example-image, как подключить это поле формы файла к плагину image min, чтобы он мог сжимать изображения?
Я старался:
req взят из экспресс/nodejs req
var filebus = new Busboy({ headers: req.headers }),
promises = [];
filebus.on('file', function(fieldname, file, filename, encoding, contentType) {
var fileBuffer = new Buffer(0),
s3ImgPath;
if (file) {
file.on('data', function (d) {
fileBuffer = Buffer.concat([fileBuffer, d]);
}).on('end', function () {
Imagemin.buffer(fileBuffer, {
plugins: [
imageminMozjpeg(),
imageminPngquant({quality: '80'})
]
}).then(function (data) {
console.log(data[0]);
if (s3ImgPath) {
promises.push(this.pushImageToS3(s3ImgPath, data[0].data, contentType));
}
});
}.bind(this));
}
});
Но проблема в том, что у меня есть буфер файла, который я могу загрузить на S3. Я не хочу, чтобы файлы попадали в папку build/images. Я хочу получить буфер для файла, сжать его и загрузить этот буфер в s3. Как я могу использовать изображение min, чтобы получить буфер загрузки файла через html-форму и загрузить его на s3?