andrewrk / node-s3-client

high level amazon s3 client for node.js
MIT License
1k stars 303 forks source link

unable to sync: PermanentRedirect #87

Open treeform opened 9 years ago

treeform commented 9 years ago

I am getting this error:

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

Not sure what to do.

Dids commented 9 years ago

I'm getting this too.

Dids commented 9 years ago

I'm assuming I need to specify the endpoint by hand, but I can't seem to find anywhere to set it.

Dids commented 9 years ago

The solution was to delete the bucket and recreate it using the "US Standard" region instead of anything else.

More on that here: http://www.sitefinity.com/developer-network/forums/set-up-installation/amazon-s3---must-be-addressed-using-the-specified-endpoint

cfjedimaster commented 9 years ago

I ran into the same bug - maybe this should be added to the docs?

joshn-ridewta-com commented 9 years ago

Still getting error after creating bucket using US Standard. Am I doing the bucket string wrong? s3Params: { Bucket: "testit.ridewta.com", Prefix: "/", // other options supported by putObject, except Body and ContentLength. // See: http://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/S3.html#putObject-property },

joshn-ridewta-com commented 9 years ago

Further testing reviled that my issue is only when running from AWS Lambda and not from my desktop so it may be unrelated to your code.

BrandonBorn commented 9 years ago

Hey all, I was getting this until I specified the s3's region in the config. I'm not sure this is the "correct" way to do this but it resolved my issue:

var s3 = require( 's3');
s3.AWS.config.region = 'us-west-2';
maxlath commented 9 years ago

Thanks @BrandonBorn for the solution! Passing the region parameter at the client creation worked like a charm too

var client = s3.createClient {
  s3Options: {
    accessKeyId: 'mykey',
    secretAccessKey: 'mysecret',
    region: 'eu-west-1'
  }
}
dkebler commented 8 years ago

spent a couple hours figuring this out on my own only to find this :-). Probably a common issue as many have buckets not in the default region. When I get some time I will make a pr for readme file on this a few other documentation improvements.

faceleg commented 8 years ago

@dkebler that would be much appreciated

tutume commented 7 years ago

Hi, I found the issue too and came here to provide some information and found this issue report. For me, it isn't working as expected.

I have configure .aws/credentials and .aws/config with region information. If I use the standard library (s3.putobject), it works as expected, using any region I have configured at aws config file. if I use node-s3-client, it uses the credentials configured, but not the config.

Unfortunately, I'm just starting playing with node and aws and don't have enough knowledge to figure out how to fix it in node-s3-client code. Anyway, I will continue testing and looking arround. Maybe I can find a solution and will try to provide.

robinzimmermann commented 4 years ago

I got it to work following @Dids's recommendation above, https://github.com/andrewrk/node-s3-client/issues/87#issuecomment-107222000, by creating the bucket in the us-east-1 region.