【问题标题】:AWS Upload file to S3 REST API - Missing required header for this request: x-amz-content-sha256AWS 将文件上传到 S3 REST API - 此请求缺少必需的标头:x-amz-content-sha256
【发布时间】:2020-09-03 10:27:34
【问题描述】:

很遗憾,我不能使用 AWS SDK,我必须使用 REST API AWS 服务(我正在使用 Flutter WEB)。 所以我开始研究aws docs,这就是我所做的:

  1. 创建存储桶。

  2. 将所有权限公开(仅用于测试)

  3. 开放接入点

然后在邮递员处,我正在使用“Auth”aws 签名并添加当前密钥, 除了会话令牌(我的桶是打开的,我知道我不需要它,如果我弄错了请纠正我)。 当我发送请求时出现错误:

Missing required header for this request: x-amz-content-sha256

这是附件图片:

AWS 签名

正文请求

错误信息

【问题讨论】:

    标签: amazon-web-services amazon-s3 postman aws-rest-api


    【解决方案1】:

    刚刚也遇到了这个问题 - 服务名称必须是“s3”与“S3”。

    advanced authorization settings

    【讨论】:

      【解决方案2】:

      根据AWS documentation,需要在请求中发送x-amz-content-sha256 header:

      所有 AWS 签名版本 4 请求都需要 x-amz-content-sha256 标头。它提供了请求有效负载的散列。如果没有有效载荷,则必须提供空字符串的哈希。

      似乎 Postman 出于某种原因没有添加它。您应该检查标题并手动添加。

      【讨论】:

        【解决方案3】:

        尝试将 S3 替换为 s3 作为服务名称。

        【讨论】:

        【解决方案4】:

        我也遇到过这个问题,在添加会话令牌参数后它得到了解决。 Postman 可以生成以下参数,

        1. X-Amz-Content-Sha256
        2. 授权
        3. x-amz-security-token
        4. X-Amz-日期

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2014-06-18
          • 1970-01-01
          • 2021-09-18
          • 2018-02-03
          • 2018-04-06
          • 2017-08-21
          • 2013-05-23
          • 2013-03-14
          相关资源
          最近更新 更多