繁体   English   中英

aws presigned post 400 错误请求

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM