亚马逊云科技 - "aws s3 ls"命令引发"InvalidRequest"错误消息。如何解决?



运行aws s3 ls命令后,我收到以下错误消息:-

调用列表存储桶时发生客户端错误 (无效请求) 操作:您正在尝试对区域中的存储桶进行操作 需要签名版本 4。您可以通过显式解决此问题 使用 --region 参数提供正确的区域位置, AWS_DEFAULT_REGION环境变量,或 AWS CLI 配置文件。您可以通过以下方式获取存储桶的位置 运行"AWS S3API 获取存储桶位置 --存储桶存储桶"。

以下是更多细节和我的发现,可能有助于回答这个问题:-

  • 该命令正在从ap-south-1区域中运行的 EC2 实例执行。

  • 此 Amazon 文档表示,在 2014 年 1 月 30 日之后创建的新区域仅支持签名版本 4。

  • 正如错误消息所建议的那样,我尝试给出命令aws --region ap-south-1 s3 ls但此命令也给出了相同的错误消息。

  • 我已经运行了yum update,并且AWS CLI版本是最新的,这是aws-cli/1.10.33 Python/2.7.10 Linux/4.4.11-23.53.amzn1.x86_64 botocore/1.4.23

  • 上面的 aws s3 ls 命令工作得非常好,如果它是从 us-east-1 实例执行的,则会列出存储桶。

您需要

aws cli更新到最新版本(撰写本文时为 v1.11.84)。

如果yum update不起作用,请尝试按照本指南安装 AWS CLI

此错误背后的原因是,在较新的区域中,AWS S3 不支持较低的签名版本。

这对我有用:

sudo pip install --upgrade awscli

对于Mac,请执行sudo pip install awscli,这应该可以解决问题。

相关内容

最新更新