使用Node.js中的multer和easy-image npm模块调整图片大小并上传到S3的步骤如下:
npm install multer easy-image
const multer = require('multer');
const easyimg = require('easyimage');
const storage = multer.diskStorage({
destination: function (req, file, cb) {
cb(null, 'uploads/'); // 上传文件保存的目录
},
filename: function (req, file, cb) {
cb(null, file.originalname); // 上传文件的原始文件名作为文件名
}
});
const upload = multer({ storage: storage });
app.post('/upload', upload.single('image'), function (req, res, next) {
// 上传的图片保存在req.file中
const image = req.file;
// 使用easy-image模块调整图片大小
easyimg.resize({
src: image.path,
dst: 'uploads/resized/' + image.filename,
width: 800, // 调整后的宽度
height: 600, // 调整后的高度
ignoreAspectRatio: true // 忽略宽高比例
}).then(function (image) {
// 调整大小后的图片保存在uploads/resized目录下
// 使用腾讯云SDK将调整后的图片上传到S3
// 这里可以使用腾讯云对象存储(COS)的相关API进行上传操作
// 例如,可以使用cos-nodejs-sdk-v5模块进行上传操作
res.send('Image uploaded and resized successfully!');
}).catch(function (err) {
console.error(err);
res.status(500).send('Error occurred while resizing image.');
});
});
以上代码假设你已经创建了一个Express.js应用,并且在根目录下创建了一个名为uploads的文件夹来保存上传的图片。调整后的图片将保存在uploads/resized目录下。
请注意,上述代码中的图片上传到S3的部分需要使用腾讯云对象存储(COS)的相关API进行操作。具体的上传代码和相关产品介绍可以参考腾讯云COS的官方文档:腾讯云对象存储(COS)
希望以上内容能够帮助到你,如果有任何问题,请随时提问。
领取专属 10元无门槛券
手把手带您无忧上云