【问题标题】:when calling the ListObjects operation: Missing required header for this request: x-amz-content-sha256调用 ListObjects 操作时:缺少此请求所需的标头:x-amz-content-sha256
【发布时间】:2019-03-15 04:07:04
【问题描述】:

我正在尝试使用以下命令从一个存储桶复制到 aws 中的另一个存储桶

aws s3 cp s3://bucket1/media s3://bucket2/media --profile xyz --recursive

返回错误提示

An error occurred (InvalidRequest) when calling the ListObjects operation: Missing required header for this request: x-amz-content-sha256
Completed 1 part(s) with ... file(s) remaining

【问题讨论】:

  • 您可以粘贴不带凭据的 ~/.aws/config 文件吗?

标签: amazon-web-services amazon-s3


【解决方案1】:

检查您所在的地区。如果您的区域设置不正确,就会发生这种error

【讨论】:

  • 哇,太弱了。不是你的答案,而是行为。
【解决方案2】:

感谢您的回答,问题在于所使用的配置文件的权限,凭据必须具有对两个 S3 存储桶的访问权限

【讨论】:

  • 这是我的情况。
【解决方案3】:

我确认这是设置错误区域的问题,但是现在的问题是:

如何知道 S3 的区域是什么?

答案就在其中托管的任何资产的链接中。

因此,假设您在bucket-1 下托管的资产之一有一个链接:

https://s3.eu-central-2.amazonaws.com/bucket-1/asset.png

这意味着您的 REGION 是 eu-central-2

好吧,那么,运行:

aws configure

并相应地更改您的区域。

【讨论】:

    【解决方案4】:

    我在没有任何 sdk 的 bash 脚本中收到此错误。

    在我的修复中,我没有在我的 cURL 请求中添加 x-amz-content-sha256x-amz-date

    值得注意的是

    x-amz-date

    AWS 要求,必须包含请求的时间戳;接受的格式非常灵活,我使用的是 ISO8601 基本格式。 例如:20150915T124500Z

    x-amz-content-sha256

    AWS 要求,必须是有效载荷的 SHA256 摘要

    请求将不携带任何有效负载(即正文将为空)。这意味着在需要“有效负载哈希”的地方,我们将提供空字符串的 SHA256 哈希。这是 e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 的常数值。这也涉及 x​​-amz-content-sha256 标头。

    详解: https://czak.pl/2015/09/15/s3-rest-api-with-curl.html

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-06-18
      • 2018-04-06
      • 2017-11-09
      • 1970-01-01
      • 2021-09-18
      • 1970-01-01
      • 1970-01-01
      • 2018-02-03
      相关资源
      最近更新 更多