Node.js 我在尝试使用preSignedUrl将图像上载到aws s3 bucket时遇到400个错误请求。出什么事了?
我在后端使用我的bucket和nodejs的IAM配置。我整晚都在寻找解决办法。但是找不到答案 这是aws上用户的我的策略配置:Node.js 我在尝试使用preSignedUrl将图像上载到aws s3 bucket时遇到400个错误请求。出什么事了?,node.js,amazon-web-services,amazon-s3,aws-sdk-nodejs,Node.js,Amazon Web Services,Amazon S3,Aws Sdk Nodejs,我在后端使用我的bucket和nodejs的IAM配置。我整晚都在寻找解决办法。但是找不到答案 这是aws上用户的我的策略配置: { "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "A
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "VisualEditor0",
"Effect": "Allow",
"Action": [
"s3:GetAccessPoint",
"s3:PutAccountPublicAccessBlock",
"s3:GetAccountPublicAccessBlock",
"s3:ListAllMyBuckets",
"s3:ListAccessPoints",
"s3:ListJobs",
"s3:CreateJob"
],
"Resource": "*"
},
{
"Sid": "VisualEditor1",
"Effect": "Allow",
"Action": "s3:*",
"Resource": [
"arn:aws:s3:::my-first-bucket-stephengr/*",
"arn:aws:s3:::my-first-bucket-stephengr",
"arn:aws:s3:*:041892289571:accesspoint/*",
"arn:aws:s3:*:041892289571:job/*"
]
}
]
}
后端代码:
app.get(“/api/upload”),需要登录,函数(req,res){
})
前端代码:
异步函数handleSubmit(e){
e、 预防默认值()
错误是由区域引起的。在后端添加区域属性修复了该问题:
var s3 = new AWS.S3({
accessKeyId: process.env.ACCESS_KEY_ID,
secretAccessKey: process.env.SECRET_ACCESS_KEY,
region: "ap-south-1"
})
如何上传?有详细信息吗?我的问题中包含了代码?有人帮忙吗?
var res = await axios.get("/api/upload", {headers: authHeader()});
try{
await axios.put(res.data.url, file, {headers: {ContentType: file.type}})
}catch(err){
console.log(err)
}
console.log(res.data);
}
var s3 = new AWS.S3({
accessKeyId: process.env.ACCESS_KEY_ID,
secretAccessKey: process.env.SECRET_ACCESS_KEY,
region: "ap-south-1"
})