Captain_Meow_Meow
Captain_Meow_Meow

Reputation: 2531

AWS node.js SDK getting 'Access Denied' using AWS example

I'm new at AWS, maybe I'm missing something obvious so help is required.

I have 2 version of code, the only different is passing bucket as a 4 chars string vs 5 chars. getting different response from aws. why is that?

var AWS = require('aws-sdk');
var s3 = new AWS.S3(); 

s3.createBucket({Bucket: 'node4'}, function() {
  var params = {Bucket: 'node4', Key: 'myKey', Body: 'Hello!'};
  s3.putObject(params, function(err, data) {
      if (err)       
          console.log(err)     
      else
        console.log("Successfully uploaded data to myBucket/myKey");   
   });
});

running the app.js:

➜  aws  node app.js
{ [AllAccessDisabled: All access to this object has been disabled]
  message: 'All access to this object has been disabled',
  code: 'AllAccessDisabled',
  region: null,
  time: Fri Feb 05 2016 20:45:11 GMT+0200 (IST),
  requestId: 'somerequestId',
  extendedRequestId: 'someextendedRequestId',
  statusCode: 403,
  retryable: false,
  retryDelay: 30 }

second code:

var AWS = require('aws-sdk');
var s3 = new AWS.S3(); 

s3.createBucket({Bucket: 'node4e'}, function() {
  var params = {Bucket: 'node4e', Key: 'myKey', Body: 'Hello!'};
  s3.putObject(params, function(err, data) {
      if (err)       
          console.log(err)     
      else
        console.log("Successfully uploaded data to myBucket/myKey");   
   });
});

running the app.js:

➜  aws  node app.js
Successfully uploaded data to myBucket/myKey

Upvotes: 1

Views: 1691

Answers (1)

Mark B
Mark B

Reputation: 200411

the only different is passing bucket as a 4 chars string vs 5 chars

Actually the only difference is that you don't have write access to the bucket named 'node4' and you do have access to a bucket named 'node4e'. Did you check to see if both buckets were actually created successfully? I notice you aren't checking for errors in the createBucket() call, just the putObject() call.

Those are fairly generic bucket names you are using, I wouldn't be surprised if the one that is failing, 'node4', is already in use by another AWS account.

Upvotes: 1

Related Questions