gpt4 book ai didi

node.js - 如何使用 IAM 和 Node.js (aws-sdk) 访问 AWS S3 上的存储桶?

转载 作者:太空宇宙 更新时间:2023-11-03 23:01:45 31 4
gpt4 key购买 nike

我在 aws 和 IAM 用户上创建了一个存储桶,然后为该用户设置了访问权限。

现在我陷入困境,因为我不知道如何使用 aws-sdk 上传图像。我找不到任何示例(我找到的所有示例都使用 key 和 secret key ,而不是 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();
}
});

我现在遇到的是错误“参数中缺少必需的 key ‘Key’”以及 45,000 个(!!!)错误,其中包含相同的文本“错误:在 params(…) 中发现意外的键 'N'”,其中 N 是错误数。

最佳答案

这似乎与 IAM 完全无关。您没有将 Key 参数传递给 S3 put 操作。我相信您应该将 fileData 传递给 putObject,而不是 data。就像这样:

var awsFileData = {Key: awsFileName, Body: data};
s3Bucket.putObject(awsFileData, function(err, data){

关于node.js - 如何使用 IAM 和 Node.js (aws-sdk) 访问 AWS S3 上的存储桶?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46411878/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com