aws presigned post 400 错误请求
aws presigned post 400 bad request
我正在尝试通过 Postman 将文件上传到我的存储桶。
我使用 post 请求,所以在我的 nodejs 后端上,我正在生成一个预签名的 post url,通过在 aws sdk
上使用这个函数
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 文档并在线搜索,但我不明白如何解决这个问题。
在你的条件变化中:
["content-length-range", 0.1, 200000000] 到 ["content-length-range", 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 将文件上传到我的存储桶。 我使用 post 请求,所以在我的 nodejs 后端上,我正在生成一个预签名的 post url,通过在 aws sdk
上使用这个函数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 文档并在线搜索,但我不明白如何解决这个问题。
在你的条件变化中:
["content-length-range", 0.1, 200000000] 到 ["content-length-range", 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);
}
});
请求邮递员: