2017-09-25 47 views
0

awsとIAMユーザーにバケットを作成し、そのユーザーのアクセス許可を設定しました。IAMを使用してAWS S3上のバケットにアクセスする方法 - Node.js(aws-sdk)?

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'がparams(...)で見つかりました"ここでNはエラーの数です。

答えて

3

これはIAMにはまったく関連していないようです。 KeyパラメーターをS3 put操作に渡していません。 dataの代わりにfileDataputObjectに渡す必要があります。ように:

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

ありがとう、私はそれを試してみましょう。 – mimic

+0

OMGそれは働いた、私はとてもばかげている:( – mimic

関連する問題