sau*_*ode 3 amazon-s3 amazon-web-services node.js multer multer-s3
我在使用 typescript 处理节点后端时遇到此错误,这是将文件上传到 aws S3 的功能。我刚开始使用打字稿,所以任何人都可以帮助我。
import AWS from "aws-sdk";
import multer from "multer";
import multerS3 from "multer-s3";
let S3 = new AWS.S3({
accessKeyId: process.env.AWS_KEY,
secretAccessKey: process.env.AWS_SECRET
})
const upload = multer({
storage: multerS3({
s3:S3, //error here
bucket: 'bucket-name',
metadata: function (req, file, cb) {
cb(null, { fieldName: file.fieldname });
},
key: function (req, file, cb) {
cb(null, Date.now().toString())
}
})
})
export { upload }
Run Code Online (Sandbox Code Playgroud)
所以问题是您正在使用 sdk 版本 2 而不是 v3 sdk 创建 s3 客户端(@aws-sdk/client-s3)。提供aws-sdk版本2客户端。@aws-sdk/client-s3是 V3 javascript SDK 的一部分。
确保安装npm i @aws-sdk/client-s3.
您可以在此处阅读有关客户端 s3 sdk 的信息
import AWS from "aws-sdk";
import { S3Client } from '@aws-sdk/client-s3';
import multer from "multer";
import multerS3 from "multer-s3";
const s3Config = new S3Client({
region: 'us-west-1',
credentials:{
accessKeyId:'',
secretAccessKey:''
}
})
const upload = multer({
storage: multerS3({
s3: s3Config,
bucket: 'bucket-name',
metadata: function (req, file, cb) {
cb(null, { fieldName: file.fieldname });
},
key: function (req, file, cb) {
cb(null, Date.now().toString())
}
})
})
export { upload }
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4604 次 |
| 最近记录: |