Thahzan
Thahzan

Reputation: 1005

NoSuchBucketPolicy error when trying to generate Bucket Policy

I'm trying out AWS S3 for the first time and I wrote the following function to generate a bucket policy.

// Load the AWS SDK for Node.js
var AWS = require('aws-sdk');

// Load configuration
AWS.config = new AWS.Config();
AWS.config.accessKeyId = sails.config.accessKeyId;
AWS.config.secretAccessKey = sails.config.secretAccessKey;
AWS.config.region = sails.config.region

// Create S3 object
var s3 = new AWS.S3();

// Defining the required parameters
var params = {
  Bucket: "bucket-name-here"
};

s3.getBucketPolicy(params, function(error, date) {
  if(error) {
    // An error occurred
    console.log("Error\n" + error);

    return res.json({
      message: "Error",
      'error': error
    });
  } else {
    // Successful
    console.log("Data\n" + date);

    return res.json({
      message: "Successful",
      'data': date
    });
  }
});

But the response is always NoSuchBucketPolicy: The bucket policy does not exist

I tried uploading a test file into the bucket, listing all buckets and it both worked as expected. What is wrong with the code?

Upvotes: 0

Views: 3592

Answers (1)

Michael - sqlbot
Michael - sqlbot

Reputation: 179364

Your code doesn't "generate" a bucket policy... it tries to fetch the existing policy of a bucket. Buckets don't have a policy until you create one, so this error would be normal in that case.

Error Code: NoSuchBucketPolicy

Description: specified bucket does not have a bucket policy.

HTTP Status Code: 404 Not Found

http://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html

Upvotes: 3

Related Questions