【发布时间】:2022-06-10 17:36:30
【问题描述】:
我已完成 s3 存储桶的所有设置并使用正确的密钥,
我想从我的应用程序上传一个文件,使用 nodejs API 进行上传并从 s3 存储桶获取文件 URL
这是我的代码:
require("dotenv").config()
const express = require('express')
const app = express();
app.listen(3001,()=>{
console.log("Runnning.......")
});
const aws = require('aws-sdk')
const multer = require('multer')
const multerS3 = require('multer-s3');
aws.config.update({
secretAccessKey: process.env.ACCESS_SECRET,
accessKeyId: process.env.ACCESS_KEY,
region: process.env.REGION,
});
const BUCKET = process.env.BUCKET
const s3 = new aws.S3();
const upload = multer({
storage: multerS3({
s3: s3,
acl: "public-read",
bucket: BUCKET,
key: function (req, file, cb) {
console.log(file);
cb(null, file.originalname)
}
})
})
app.post('/upload', upload.single('file'), async function (req, res, next) {
res.send('Successfully uploaded ' + req.file.location + ' location!')
})
【问题讨论】:
-
我觉得app.post('/upload',
upload.single('file')这里不正确,这个函数需要处理req,res,next对象,因为它是一个中间件 -
你能告诉我如何纠正它吗? @SándorBakos
-
忽略我的评论,我错了,我的错,我认为文档中的那部分没问题,expressjs.com/en/resources/middleware/multer.html
标签: amazon-s3 multer multer-s3