尝试生成Bucket Policy时出现NoSuchBucketPolicy错误

时间:2015-10-23 03:13:51

标签: node.js amazon-web-services amazon-s3

我第一次尝试使用AWS S3,并编写了以下函数来生成存储桶策略。

// 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
    });
  }
});

但响应总是NoSuchBucketPolicy: The bucket policy does not exist

我尝试将测试文件上传到存储桶中,列出所有存储桶,它们都按预期工作。代码有什么问题?

1 个答案:

答案 0 :(得分:1)

您的代码没有"生成"存储桶策略...它尝试获取存储桶的现有策略。在你创建一个策略之前,桶没有策略,所以在这种情况下这个错误是正常的。

  

错误代码:NoSuchBucketPolicy

     

描述:指定的存储桶没有存储桶策略。

     

HTTP状态代码:404 Not Found

     

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