【发布时间】:2022-08-03 01:27:03
【问题描述】:
笔记:在 multer s3 中出现以下错误。这个错误指向 NPM 模块,我真的不明白这个模块的问题。我使用了 upload.single 和 upload.array 方法来检查这个模块的工作。但不工作。
代码:
const bodyParser = require(\'body-parser\');
const cors = require(\'cors\');
const aws = require(\'aws-sdk\');
const multer = require(\'multer\');
const multerS3 = require(\'multer-s3\');
const http = require(\'http\');
const app = express();
app.set(\'port\', 3000);
app.use(
bodyParser.json({
limit: \'50mb\'
})
);
app.use(
bodyParser.urlencoded({
limit: \'50mb\',
extended: true
})
);
app.use(cors());
aws.config.update({
accessKeyId: \'\',
secretAccessKey: \'\'
});
s3 = new aws.S3();
const upload = multer({
storage: multerS3({
s3: s3,
bucket: \'\',
acl: \'public-read\',
contentType: multerS3.AUTO_CONTENT_TYPE,
metadata: function (req, file, cb) {
cb(null, {
fieldName: file.fieldname
});
},
key: function (req, file, cb) {
let extArray = file.mimetype.split(\'/\');
let ext = extArray[extArray.length - 1];
console.log(`ext ->> `, ext, ` file.fieldname ->> `, file.fieldname);
cb(null, \"test/\" + Date.now().toString() + \'.\' + ext);
},
/* limits: {
fileSize: 1024 * 1024 * 10
} */
})
});
(() => {
server = http.createServer(app).listen(app.get(\'port\'), () => {
console.debug(`Server started ->> `);
app.get(\'/test\', (req, res) => {Mul
res.send(\'Hello\');
});
app.post(\'/media\', upload.single(\'media\'), (req, res) => {
console.log(`req.files ->> `, req.file);
res.send(\'Thanks for you waiting time\');
});
});
})();
错误:
ext ->> jpeg file.fieldname ->> media
TypeError: this.client.send is not a function
at Upload.__uploadUsingPut (/home/tristate/Jay/Force/node_modules/@aws-sdk/lib-storage/dist-cjs/Upload.js:52:25)
at Upload.__doConcurrentUpload (/home/tristate/Jay/Force/node_modules/@aws-sdk/lib-storage/dist-cjs/Upload.js:99:39)
at process._tickCallback (internal/process/next_tick.js:68:7)
用 multer-s3 寻找解决方案。先感谢您。
标签: node.js rest multer multer-s3