简体   繁体   中英

aws s3api create-bucket —bucket make exception

I am trying to create an S3 bucket using

aws s3api create-bucket —bucket kubernetes-aws-wthamira-io

It gives this error:

An error occurred (IllegalLocationConstraintException) when calling
the CreateBucket operation: The unspecified location constraint is
incompatible for the region specific endpoint this request was sent
to.

I set the region using aws configure to eu-west-1

Default region name [eu-west-1]: 

but it gives the same error. How do I solve this?

I use osx terminal to connect aws

try this:

aws s3api create-bucket --bucket kubernetes-aws-wthamira-io --create-bucket-configuration LocationConstraint=eu-west-1

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

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

Using mb solved the issue for us

aws s3 mb s3://storage.example.com --region us-west-1

You'll also get this error if you're trying to create a bucket with a name that's already been taken.

So try giving your bucket a more unique name and then it should work (I just added digits to the end of the bucket name).

I have seen many answers like the first one about "LocationConstraint". The answer is correct, but only covers half the case. I tried to include "LocationConstraint" to solve the problem but still got the same error. It's Omar Zairi's second answer gave me a clue.

The message here is in fact very confusing. When you are trying to create a bucket with a name that's already taken, only when your configured region is the same as the bucket with the already taken name's region, you receive the message "The requested bucket name is not available". Otherwise, you receive "location constraint is incompatible for the region specific endpoint this request was sent to".

To find if a name is already taken, and in case it's taken, which region the bucket with that name is in, look at the DNS record of "the-name.s3.amazonaws.com".

Below I use a taken name "test8765" to show what I mentioned above. Hope this helps whoever got confused like I did.

bing@bingstp:~$ dig test8765.s3.amazonaws.com

; <<>> DiG 9.11.3-1ubuntu1.3-Ubuntu <<>> test8765.s3.amazonaws.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 39766
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 65494
;; QUESTION SECTION:
;test8765.s3.amazonaws.com. IN  A

;; ANSWER SECTION:
test8765.s3.amazonaws.com. 2016 IN  CNAME   s3-us-west-2-w.amazonaws.com.
s3-us-west-2-w.amazonaws.com. 5 IN  A   52.218.216.10

;; Query time: 16 msec
;; SERVER: 127.0.0.53#53(127.0.0.53)
;; WHEN: Thu Jan 03 15:16:11 AEDT 2019
;; MSG SIZE  rcvd: 99

bing@bingstp:~$ aws s3api create-bucket --bucket test8765

An error occurred (IllegalLocationConstraintException) when calling the CreateBucket operation: The unspecified location constraint is incompatible for the region specific endpoint this request was sent to.
bing@bingstp:~$ aws s3api create-bucket --bucket test8765 --create-bucket-configuration LocationConstraint=eu-west-1

An error occurred (IllegalLocationConstraintException) when calling the CreateBucket operation: The eu-west-1 location constraint is incompatible for the region specific endpoint this request was sent to.
bing@bingstp:~$ aws s3api create-bucket --bucket test8765 --create-bucket-configuration LocationConstraint=us-west-2

An error occurred (BucketAlreadyExists) when calling the CreateBucket operation: The requested bucket name is not available. The bucket namespace is shared by all users of the system. Please select a different name and try again.
bing@bingstp:~$ aws s3api create-bucket --bucket test8765 --create-bucket-configuration LocationConstraint=us-west-1

An error occurred (IllegalLocationConstraintException) when calling the CreateBucket operation: The us-west-1 location constraint is incompatible for the region specific endpoint this request was sent to.
bing@bingstp:~$ 

Most of the suggestions listed above could be a reason for the IllegalLocationConstraintException error to happen. In my case, the same error happened and solved by creating a new bucket with the same region as that of the code I am working with. For instance, if S3 bucket is created in us-east-1 region, your code eg, the AWS SageMaker notebook instance has to be also created from us-east-1 region.

试试这个:

aws s3api create-bucket --bucket myhosted-cctestdemowebsitetest.com --acl public-read --create-bucket-configuration LocationConstraint=ap-south-1 --region ap-south-1

I got this error when using:

aws s3 mb s3:// --region us-east-1

Adding numbers to the bucket name fixed it for me.

s3.create_bucket(Bucket=bucket_name,CreateBucketConfiguration={'LocationConstraint':'us-west-2'})

if your location is not 'us-east-1' you must use CreateBucketConfiguration={'LocationConstraint':'your location'} inside create_bucket(). The right syntax is mentioned above.

Even I'm facing the same problem. Change the bucket name and try. It worked for me

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM