我第一次尝试使用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
我尝试将测试文件上传到存储桶中,列出所有存储桶,它们都按预期工作。代码有什么问题?
答案 0 :(得分:1)
您的代码没有"生成"存储桶策略...它尝试获取存储桶的现有策略。在你创建一个策略之前,桶没有策略,所以在这种情况下这个错误是正常的。
错误代码:NoSuchBucketPolicy
描述:指定的存储桶没有存储桶策略。
HTTP状态代码:404 Not Found
http://docs.aws.amazon.com/AmazonS3/latest/API/ErrorResponses.html