Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Boto3 AWS S3 bucket creation error

I am beginner in Boto3 and working on AWS developer certification. I am trying to create a S3 bucket in my account. Below is my code

#!/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')

region_name='ap-south-1' Then I tried a bunch of others from this link but did not help https://docs.aws.amazon.com/general/latest/gr/rande.html

My code looks like this now

#!/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')

I get the below error :

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.

Thanks for your help and suggestions.

like image 490
Raghunandan Sk Avatar asked Apr 05 '18 06:04

Raghunandan Sk


1 Answers

From https://docs.aws.amazon.com/cli/latest/reference/s3api/create-bucket.html

Regions outside of us-east-1 require the appropriate LocationConstraint to be specified in order to create the bucket in the desired region

I believe you need to specify the location constraint when you create bucket. Here's a snippet from http://boto3.readthedocs.io/en/latest/reference/services/s3.html

response = client.create_bucket(
   ...
    CreateBucketConfiguration={
        'LocationConstraint': 'eu-west-1'
    },
    ...
)
like image 173
Vishaal Avatar answered Sep 21 '22 12:09

Vishaal