[英]aws presigned post 400 bad request
我正在尝试通过 Postman 将文件上传到我的存储桶。 我在我的 nodejs 后端上使用了一个发布请求,通过在 aws sdk 上使用这个 function,我生成了一个预签名的帖子 url
Url() {
const suffix = `${(0, uuid_1.v4)()}`;
const extension = path_1.default.basename(this.fileName);
const params = {
Bucket: constants_1.BUCKET,
Fields: {
Key: `${this.pathToSave}/${suffix}${extension}`,
"Content-Type": "image/jpeg"
},
Conditions: [
["content-length-range", 0.1, 200000000],
["eq", "$x-amz-meta-postid", this.postId],
["eq", "$Content-Type", "image/jpeg"]
],
Expires: 180
};
return new Promise((resolve, reject) => {
S3.createPresignedPost(params, function (err, data) {
if (err) {
reject(err);
return;
}
resolve(data);
});
});
}
这就是我通过 postman 提出请求的方式
问题是当我发送请求时出现 400 Bad Request 错误。 我已阅读所有 aws 文档并在线搜索,但我不了解如何解决此问题。
在你的条件改变:
["内容长度范围", 0.1, 200000000] 到 ["内容长度范围", 1, 200000000]
我的代码有效:
const params = {
Bucket: "{bucket_name}",
Fields: {
Key: `test.jpg`,
"Content-Type": "image/jpeg"
},
Conditions: [
["content-length-range", 1, 2000000000],
["eq", "$x-amz-meta-postid", "some-post-id"],
["eq", "$Content-Type", "image/jpeg"]
],
Expires: 380
};
s3.createPresignedPost(params, function(err, data) {
if (err) {
console.error('Presigning post data encountered an error', err);
} else {
console.log('The post data is', data);
}
});
请求至 postman:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.