我正在使用aws cli( aws-cli/1.3.23 Python/2.7.5 Darwin/13.2.0 )来访问我的s3存储桶,并且如果存储桶名称为句点,则会出现以下错误。
$ aws s3 ls s3://my.bucket HTTPSConnectionPool(host='s3-us-east-1a.amazonaws.com', port=443): Max retries exceeded with url: /my.bucket?delimiter=/&prefix= (Caused by <class 'socket.gaierror'>: [Errno 8] nodename nor servname provided, or not known)
一切工作正常,如果桶没有时期:
$ aws s3 ls s3://mybucket
根据aws文档,时期是好的,我没有问题通过网站访问桶。
今天有这个相同的问题。 解决scheme是指定您的区域。
什么不工作:
aws s3 sync --acl public-read dist/ s3://some.bucket.name/
现在什么工作:
aws s3 --region us-east-1 sync --acl public-read dist/ s3://some.bucket.name/
编辑:如果你所有的桶将存在于相同的地区,去命令行(在OSX):
aws configure
如果您还没有提供您的AWS密钥,那就这样做。 问题#3应该是默认区域。 在我的情况下,我input:
us-east-1
现在我不再需要指定区域,除非这个桶在我的默认区域之外。
…我遇到了与我的帐户类似的问题。
我发现(通过试验和错误),当我使用错误的地区标识符,我得到了Errno 8。
这是什么工作:
以下是不起作用的:
在指定区域标识符时,我找不到任何明确的帮助,因此这个答案完全是经验性的,在所有情况下都可能不起作用。