Python Boto3 AWS S3存储桶创建错误

Python Boto3 AWS S3存储桶创建错误,python,amazon-web-services,amazon-s3,boto3,Python,Amazon Web Services,Amazon S3,Boto3,我是Boto3的初学者,正在进行AWS开发人员认证。 我正在尝试在我的帐户中创建一个S3存储桶。下面是我的代码 #!/usr/bin/python import boto3 from boto3.session import Session session = Session(aws_access_key_id='asd',aws_secret_access_key='asdas') s3 = session.resource('s3') s3.create_bucket(Bucket='my

我是Boto3的初学者,正在进行AWS开发人员认证。 我正在尝试在我的帐户中创建一个S3存储桶。下面是我的代码

#!/usr/bin/python
import boto3
from boto3.session import Session
session = Session(aws_access_key_id='asd',aws_secret_access_key='asdas')

s3 = session.resource('s3')
s3.create_bucket(Bucket='myfbucket789076541253334')
地区名称='ap-south-1' 然后我尝试了其他一些链接,但没有帮助

我的代码现在看起来像这样

#!/usr/bin/python
import boto3
from boto3.session import Session
session = Session(aws_access_key_id='xyz',aws_secret_access_key='+af',region_name='eu-west-1')

s3 = session.resource('s3')
s3.create_bucket(Bucket='myfbucket789076541253334')
我得到以下错误:

Traceback (most recent call last):
  File "S3_bucket.py", line 6, in <module>
    s3.create_bucket(Bucket='myfbucket789076541253334')
  File "/Users/xvz/.local/lib/python3.6/site-packages/boto3/resources/factory.py", line 520, in do_action
    response = action(self, *args, **kwargs)
  File "/Users/xvz/.local/lib/python3.6/site-packages/boto3/resources/action.py", line 83, in __call__
    response = getattr(parent.meta.client, operation_name)(**params)
  File "/Users/xvz/anaconda3/lib/python3.6/site-packages/botocore/client.py", line 314, in _api_call
    return self._make_api_call(operation_name, kwargs)
  File "/Users/xvz/anaconda3/lib/python3.6/site-packages/botocore/client.py", line 612, in _make_api_call
    raise error_class(parsed_response, operation_name)
botocore.exceptions.ClientError: An error occurred (IllegalLocationConstraintException) when calling the CreateBucket operation: The unspecified location constrai
nt is incompatible for the region specific endpoint this request was sent to.
回溯(最近一次呼叫最后一次):
文件“S3_bucket.py”,第6行,在
s3.创建_bucket(bucket='myfbucket789076541253334')
文件“/Users/xvz/.local/lib/python3.6/site packages/boto3/resources/factory.py”,第520行,在do_action中
响应=动作(自身、*args、**kwargs)
文件“/Users/xvz/.local/lib/python3.6/site packages/boto3/resources/action.py”,第83行,在调用中__
response=getattr(parent.meta.client,operation_name)(**参数)
文件“/Users/xvz/anaconda3/lib/python3.6/site packages/botocore/client.py”,第314行,在api调用中
返回self.\u make\u api\u调用(操作名称,kwargs)
文件“/Users/xvz/anaconda3/lib/python3.6/site packages/botocore/client.py”,第612行,在make\u api\u调用中
引发错误\u类(解析的\u响应、操作\u名称)
botocore.exceptions.ClientError:调用CreateBucket操作时发生错误(IllegalLocationConstraintException):未指定的位置构造
nt与此请求发送到的特定于区域的终结点不兼容。
谢谢你的帮助和建议

来自

us-east-1以外的地区需要指定适当的位置约束,以便在所需地区创建铲斗

我认为在创建bucket时需要指定位置约束。这里有一段来自


我的boto版本是2.48.0它适用于
us-east-1
这是正确的。出于传统/向后兼容性的原因,没有位置约束的bucket意味着bucket将被约束到
us-east-1
。因此,将此类存储桶的创建请求发送到其他区域终结点失败。请确保检查~/.aws/config以查看是否有其他
[默认]区域=
response = client.create_bucket(
   ...
    CreateBucketConfiguration={
        'LocationConstraint': 'eu-west-1'
    },
    ...
)