AWS S3 CLI - 无法连接到端点URL

Pra*_*hat 95 amazon-s3 amazon-web-services

$ aws s3 ls

Could not connect to the endpoint URL: "https://s3.us-east-1a.amazonaws.com/"
Run Code Online (Sandbox Code Playgroud)

可能是什么问题呢?

Fré*_*nri 225

您的默认区域的默认配置文件可能有问题.

检查你的文件~/.aws/config,你有类似的东西

[default]
region=us-east-1a
...
Run Code Online (Sandbox Code Playgroud)

修复区域region=us-east-1,然后命令将正常工作

  • 我在 ~/.aws/config 中有一个类似的错误条目,它是由 'aws configure' 命令创建的。默认情况下,它建议我接受的区域名称“孟买”。这就是问题所在。一旦我用 ap-south-1 替换它,命令 (aws s3 ls) 就开始工作了。谢谢。 (3认同)
  • 我遇到了类似的错误,发现也可以通过将区域指定为命令行选项来解决:`aws s3 ls --region us-east-1`。 (3认同)
  • 我希望他们有能力为这样的答案提供捐款。 (3认同)

小智 8

首先使用'aws configure'然后输入访问密钥,密钥和区域.您输入的区域对此问题很重要.尝试输入类似's3.us-east-1'的东西,而不是's3.us-east-1a'.它会解决这个问题.


小智 7

如果以上给出的解决方案均无效,还请检查您的权限和防火墙设置。在我的情况下,添加代理环境变量完成了这项工作。

对于 Linux 或 mac

$ export HTTP_PROXY=http://<YOUR PROXY IP>:<PORT>

$ export HTTPS_PROXY=http://<YOUR PROXY IP>:<PORT>

对于 Windows

set HTTP_PROXY=http://<YOUR PROXY IP>:<PORT>

set HTTPS_PROXY=http://<YOUR PROXY IP>:<PORT> aws cli Windows

在此处输入图片说明


Tho*_*ann 6

某些 AWS 服务仅在与您的实际区域不匹配的特定区域提供。如果是这种情况,您可以通过将区域添加到您的实际 cli 命令来覆盖标准设置。

对于不想更改配置文件中的默认区域的人来说,这可能是一个方便的解决方案。如果您的通用配置文件未设置:请检查上面的建议。

在这个例子中,该地区被强制为 eu-west-1(例如爱尔兰):

aws s3 ls --region=eu-west-1
Run Code Online (Sandbox Code Playgroud)

测试并与 aws workmail 一起使用以删除用户:

aws workmail delete-user --region=eu-west-1 --organization-id [org-id] --user-id [user-id]
Run Code Online (Sandbox Code Playgroud)

我从这个线程中得出了这个想法,它对我来说非常适合 - 所以我想分享它。希望能帮助到你!


Son*_*al 6

可能是配置 aws 时默认区域有问题。在您的情况下,URL 为“ https://s3.us-east-1a.amazonaws.com/

在命令提示符中,

aws configure,输入您的密钥,现在将您的区域从 us-east-1a 修复为us-east-1

请根据您使用的 CLI 检查语法。这会很有帮助。


小智 5

您应该在 CLI 脚本中指定区域,而不是依赖使用 aws configure 指定的默认区域(如当前最流行的答案所断言)。另一个答案提到了这一点,但如果您通过 AWS Tools for Powershell 使用 CLI,则语法是错误的。

此示例强制区域为 us-west-2(北加利福尼亚),PowerShell 语法:

aws s3 ls --region us-west-2
Run Code Online (Sandbox Code Playgroud)