Я ищу способ изменить размер изображения (загружаемого стандартной формой html), прежде чем отправлять его в облако (openstack, s3 или else).NodeJS + Multer + PkgCloud: изменить размер изображения перед его отправкой в облако
Я использую NodeJS и 3 плагина: Multer (управление загрузкой), lwip (изменение размера изображения) и PkgCloud (перенос в облако).
Я могу обрабатывать загрузку с помощью multer, и я могу написать новый файл с измененным размером на сервере с помощью lwip.
var fs = require('fs'),
multer = require('multer'),
upload = multer({ dest: 'uploads/medias/' }),
pkgcloud = require('pkgcloud'),
client = pkgcloud.storage.createClient({/* some config */});
// "router" is an instance of a route from Express
router.post('/media/:id/image', upload.single('file'), function (req) {
var lwip = require('lwip'),
type = 'png',
npath = req.file.path + '_150x150';
// the file exists and the log shows information
console.log(req.file);
// open image
lwip.open(req.file.path, type, function (err, image) {
image.batch()
.resize(150, 150)
.writeFile(npath, type, function() {
// remove raw file
fs.unlink(req.file.path, function() {
// how do I send the new resized file to the pkgcloud client?
});
});
});
});
Но у меня что-то не хватает, и я не могу найти способ отправить этот новый файл в облако. Я обнаружил плагин, который управляет передачей между multer и сконфигурированным экземпляром pkgcloud (multer-storage-pkgcloud), но я не могу понять, как изменить размер файла перед его отправкой в облако.
Есть ли у кого-нибудь идеи, как с этим справиться?
Благодаря