[英]How to access bucket on AWS S3 using IAM - with Node.js (aws-sdk)?
我在aws和IAM用户上创建了一个存储桶,然后为用户设置了访问权限。
现在我卡住了,因为我不知道如何使用aws-sdk上传图片。 我找不到任何例子(我发现的所有例子都使用密钥和密钥,而不是IAM)。
请给我一个工作示例或修复我的代码,这些代码显然不起作用:
var awsFileName = entityType.awsFolder + entityId + '/' + fileName; //get filename like /folder1/folder2/filename
aws.config.update({
region: 'ca-central-1',
accessKeyId: awsKey // like 'ADXZJMPSVCU3KOAXGJJL'
});
var s3 = new aws.S3();
var s3Bucket = new aws.S3( { params: {Bucket: 'testbucket'} } );
var awsFileData = {Key: awsFileName, Body: data};
s3Bucket.putObject(data, function(err, data){
if (!err)
{
callbackOk(fileName, awsFileName);
console.log('succesfully uploaded the image!');
} else {
console.log('Error uploading data: ', data);
callbackFail();
}
});
我现在的错误是“在参数中缺少所需的密钥'密钥'和45,000(!!!)错误,具有相同的文本”错误:在params(...)中找到意外的密钥'N',其中N是错误的数量。
这似乎与IAM无关。 您没有将Key
参数传递给S3 put操作。 我相信你应该将fileData
传递给putObject
而不是data
。 像这样:
var awsFileData = {Key: awsFileName, Body: data};
s3Bucket.putObject(awsFileData, function(err, data){
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.