node.js - 使用 Node - Express - Multer - AWS 在上传时压缩图像
问题描述
我正在尝试找到减小图像大小以节省加载速度的解决方案。
我有一个用于 imageupload 的中间件,其工作原理如下:
const multer = require('multer');
const aws = require('aws-sdk');
const multerS3 = require('multer-s3');
aws.config.update({
secretAccessKey: XXXXX,
secretKeyId: XXXXXX,
region: XXXXX
});
const s3 = new aws.S3();
const MIME_TYPE_MAP = {
'image/png': 'png',
'image/jpeg': 'jpeg',
'image/jpg': 'jpg'
};
const fileUpload = multer({
limits: 500000,
storage: multerS3({
s3: s3,
bucket: XXXXX,
acl: 'public-read',
metadata: function(req, file, cb) {
cb(null, { fieldName: file.fieldname });
},
key: function(req, file, cb) {
cb(null, Date.now().toString());
}
}),
fileFilter: (req, file, cb) => {
const isValid = !!MIME_TYPE_MAP[file.mimetype];
let error = isValid ? null : new Error('Invalid mime type !');
cb(error, isValid);
}
});
module.exports = fileUpload;
这个中间件在我的路由器中被调用如下:
router.post('/new', fileUpload.single('image'), controller.function);
关于上传,一切都很好,但它是以全尺寸发送的,我可以看到很快就会导致问题......
你能帮我么 ?
大家加油,
解决方案
推荐阅读
- ios - iOS 13 和 iPhone 11 Pro 模拟器下的 tableView.rowHeight = UITableView.automaticDimension 导致无限更新子视图循环
- spring-boot - Spring-boot BASIC Authentication 在 IE 浏览器中不起作用
- javascript - 列表从容器底部开始并向上附加
- python - 如何在没有数据库的情况下使用 JWTTokenUserAuthentication 进行身份验证
- python - 如何避免 Python 中的默认事件日志记录
- javascript - 为什么我们需要在 webpack 中排除 node_modules?
- mysql - 此 SQL 查询中的错误是什么?
- acumatica - 如何在 Acumatica 的 Modren UI 菜单中设置用户定义的图标
- python - 域端口 uWsgi 教程 - uwsgi-docs.readthedocs.io/en/latest/tutorials/Django_and_nginx.html#about-the-domain-and-port
- c# - 类层次结构,按优先级获取属性