Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

The bucket you are attempting to access must be addressed using the specified endpoint. Please send all future requests to this endpoint. #46

Closed
nodesocket opened this issue May 12, 2013 · 9 comments

Comments

@nodesocket
Copy link

The bucket you are attempting to access must be addressed using the specified endpoint. Please send all future requests to this endpoint.

This error happens when attempting to upload to a bucket other than us-standard.

@dekelev
Copy link

dekelev commented May 18, 2013

I've successfully uploaded a test file to 'eu-west-1' region using 'example-form.php' file.
Can you post an example code?

@tpyo
Copy link
Owner

tpyo commented May 18, 2013

Unfortunately there is no region detection, so you'd need to call S3::setEndpoint() to access other endpoints first:
S3::setEndpoint('s3-eu-west-1.amazonaws.com');

@dekelev
Copy link

dekelev commented May 18, 2013

From what I know, S3 is cross-region, which means that you do not need to specify a region to upload files to, as it will uploads to one and replicates to other regions behind the scenes. Therefor endpoint = 's3.amazonaws.com'
If your bucket called 'test', you will upload to 'test.s3.amazonaws.com', not to 'test.s3-eu-west-1.amazonaws.com'.

@tpyo
Copy link
Owner

tpyo commented May 18, 2013

Seems you could be right about that @dekelev - will need to look into it a little more.

@BWLR
Copy link

BWLR commented May 21, 2013

I can confirm that @tpyo 's suggestion of setting the endpoint manually using the following worked for me.

$s3 = new S3(); $s3->setEndpoint('s3-eu-west-1.amazonaws.com');

(even though I was setting the public static $endpoint = 's3-eu-west-1.amazonaws.com'; in S3.php)

FYI I'm using a bucket in Region: Ireland

@dekelev
Copy link

dekelev commented May 22, 2013

well I read about it here, and under "Regions" it says you do create the S3 bucket in a region and it replictes only within that region, not to other regions, so it make sense to use a region specific domain name.

http://aws.amazon.com/s3/faqs/#Where_is_my_data_stored

@jonathancrane
Copy link

I'm coming across a similar issue. So the https://BUCKETNAME.s3.amazonaws.com/PATH/TO/FILE format is region-agnostic, but you have to make sure that the bucket name is DNS compatiable. When you put the request into the above format, what the web server does is convert all letters in the bucket name to lower case. So if the bucket name has upper case letters, you'll get "The specified bucket does not exist."

I do not think that it's coincidental that for regions outside of "US Standard," we can only use numbers and lower case letters in bucket names.

@jonathancrane
Copy link

Figured out my issue. My app is in Node and it turns out there's a global config where you specify a region. So you're basically confined to accessing buckets in the stated region. Seems inflexible. Am wondering what the reason behind it is.

@pitashi
Copy link

pitashi commented Jan 23, 2020

This does appear to matter, at least in my use case. When instantiating the S3 object and trying to use any of the methods if I do not specify the region like this $s3->setEndpoint('s3-us-west-1.amazonaws.com'); it will not work. Specifically noticed this with getObject

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

6 participants