AWS 将文件上传到 S3 REST API - 缺少此请求所需的标头:x-amz-content-sha256

Sah*_*unu 5 amazon-s3 amazon-web-services postman aws-rest-api

不幸的是,我无法使用AWS SDK,我必须使用REST API AWS服务(我正在使用Flutter WEB)。所以我开始对 aws 文档进行研究,这就是我所做的:

  1. 创建存储桶。

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

  3. 开放接入点

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

Missing required header for this request: x-amz-content-sha256
Run Code Online (Sandbox Code Playgroud)

这是附件图片:

AWS签名 AWS签名

身体要求 身体要求

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

小智 8

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

高级授权设置


sas*_*hee 4

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

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

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