var AWS = require('aws-sdk');
var S3FS = require('s3fs');
AWS.config.update({region: 'us-east-1'});
var options = {};
exports.storeMedia = function(req, res){
var fsImpl = new S3FS('test-bucket', options);
fsImpl.writeFile('message.txt', 'Hello Node', function (err) {
if (err) throw err;
console.log('It\'s saved!');
});
}
我的代码只是我尝试测试doc示例的示例代码。我已经在我的macbook上的.aws下的凭证文件中保存了aws密钥ID和密码。我已经构建了一个用户并为其分配了访问策略,以便我能够通过AWS Console上的已分配用户获取和放置对象。我还应该看看什么?显然,我遗漏了一些基本的东西,只需要对驼峰有点帮助。
答案 0 :(得分:0)
我研究了一些额外的东西。一,我查看了https://www.npmjs.com/package/s3fs的模块页面,其中列出了s3fs所需的最低权限。 其次,我尝试使用基础aws-sdk。我很惊讶地看到我可以毫无问题地做一个ListBucket。然后,我尝试将一个对象放在一个现有的存储桶中,这没有问题。我能够在这方面取得进展,但我需要更多地了解我可能没有给予哪些特权,因此我清楚地了解哪些特权缺失。
我对该存储桶的政策如下:
{
"Version": "2012-10-17",
"Id": "Policy1437933054275",
"Statement": [
{
"Sid": "Stmt1437932987273",
"Effect": "Allow",
"Principal": "*",
"Action": "s3:*",
"Resource": [
"arn:aws:s3:::meetsites-images/*",
"arn:aws:s3:::meetsites-images"
]
}
]
}
并且用户的政策是
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "s3:*",
"Resource": "*"
}
]
}
我也能找到一个关于这个主题的好博客,很难找到更好的提及[链接](http://blogs.aws.amazon.com/security/post/TxPOJBY6FE360K/IAM-policies-and-Bucket-Policies-and-ACLs-Oh-My-Controlling-Access-to-S3-Resourc)