【问题标题】:"aws s3 ls" command throwing "InvalidRequest" error message. How to solve it?“aws s3 ls”命令抛出“InvalidRequest”错误消息。如何解决?
【发布时间】:2016-11-08 08:12:02
【问题描述】:

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

调用 ListBuckets 时发生客户端错误 (InvalidRequest) 操作:您正在尝试对某个区域中的存储桶进行操作, 需要签名版本 4。您可以通过显式解决此问题 使用 --region 参数提供正确的区域位置, AWS_DEFAULT_REGION 环境变量,或 AWS CLI 配置文件。您可以通过以下方式获取存储桶的位置 运行“aws s3api get-bucket-location --bucket BUCKET”。

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

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

  • This亚马逊文档说,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 实例执行的,它会列出桶。

【问题讨论】:

    标签: amazon-web-services amazon-s3 amazon-ec2


    【解决方案1】:

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

    如果yum update 不起作用,请尝试关注此Guide to install AWS CLI

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

    【讨论】:

    • 为了扩展这个答案,包存储库中的 AWS CLI 版本通常已过时,最好从 AWS 下载安装。
    • 感谢它的工作。这些是我采取的步骤:- 1> sudo yum remove aws-cli 2> sudo pip install awscli
    【解决方案2】:

    这对我有用:

    sudo pip install --upgrade awscli
    

    【讨论】:

    • 我有一台 Mac,不幸的是升级我的 aws-cli 并没有为我解决这个问题。
    【解决方案3】:

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

    【讨论】:

    • 完全相同的 pip install 命令在 Amazon Linux AMI 上为我工作。问题解决了。谢谢!
    • 不幸的是,升级我的 aws-cli 并没有为我解决这个问题。
    猜你喜欢
    • 1970-01-01
    • 2018-12-03
    • 1970-01-01
    • 1970-01-01
    • 2016-08-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-03
    相关资源
    最近更新 更多