1

不幸的是,我不能使用 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 签名 Aws 签名

正文请求 正文请求

错误信息在此处输入图像描述

4

4 回答 4

1

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

高级授权设置

于 2021-07-02T18:16:52.923 回答
0

根据AWS 文档,您需要x-amz-content-sha256在请求中发送标头:

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

似乎邮递员由于某种原因没有添加它。您应该检查标题并手动添加。

于 2020-09-03T11:50:58.853 回答
0

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

  1. X-Amz-内容-Sha256
  2. 授权
  3. x-amz-安全令牌
  4. X-Amz-日期
于 2021-10-26T12:11:37.160 回答
0

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

于 2021-10-11T14:20:03.853 回答