Javascript 如果上载非图像文件,Multer-s3-transform错误
我想在上传到s3存储桶之前将图像文件转换为更小的大小,我决定使用multer-s3-transform。我的问题是,我应该能够上传非图像文件,以及像pdf,文档等。。。但我不断地犯错误。这是我的密码Javascript 如果上载非图像文件,Multer-s3-transform错误,javascript,node.js,multer-s3,Javascript,Node.js,Multer S3,我想在上传到s3存储桶之前将图像文件转换为更小的大小,我决定使用multer-s3-transform。我的问题是,我应该能够上传非图像文件,以及像pdf,文档等。。。但我不断地犯错误。这是我的密码 "use strict"; const config = require('../../config/config'); const _ = require('lodash'); const AWS = require('../../library/aws-sdk'); const multer
"use strict";
const config = require('../../config/config');
const _ = require('lodash');
const AWS = require('../../library/aws-sdk');
const multer = require('multer');
const multerS3 = require('multer-s3-transform');
const uuid = require('../../library/uuid');
const sharp = require('sharp');
const s3 = new AWS.S3();
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) {
let quality = '';
if (file.mimetype === 'image/jpeg') {
quality = sharp().jpeg({quality : 20});
}
else if (file.mimetype === 'image/png') {
quality = sharp().png({quality : 20});
}
cb(null, quality);
}
}
]
});
const multerOpt = {
storage : multerS3Obj,
limits : {
fileSize : 15728640
},
fileFilter : (req, file, cb) => {
cb(null, true);
}
};
module.exports = multer(multerOpt);
我真的认为我需要先检查文件类型,但我不知道怎么做。你能提供错误详细信息吗?@尽管事实上这不是一个真正的错误,但代码没有继续,我想是因为这个代码
cb(null,/^image/I.test(file.mimetype))代码>内部shouldTransform@Neverever我试图用它添加条件,这是我得到的错误TypeError:dest.on不是一个函数
你有什么解决方案吗?我面临着同样的问题您能提供错误详细信息吗?@Neverer实际上这不是一个错误,但代码没有继续,我想是因为这个代码cb(null,/^image/I.test(file.mimetype))代码>内部shouldTransform@Neverever我试图用它添加条件,这是我得到的错误TypeError:dest.on不是一个函数
你有什么解决方案吗?我也面临同样的问题