2017-10-27 3 views
0

でS3オブジェクトをダウンロードできませんノードを使用している間にS3オブジェクトをダウンロードしようとしており、これにprevious questionと尋ねました。コードは以下のとおりです。私はアクセスキーの資格情報を環境変数として宣言しており、自分のアカウントアクセスキーとIAmロールの両方を試しています。私はバケットポリシーを作成するだけでなく、複数のキー、プロファイル、バケット、ファイルを生成しようとしましたが、そのすべてが以下のスタックトレースになりました。私はバケツとファイルオブジェクトを正しく呼び出すだけでなく、自分の資格情報を正しく設定していますか? aws-sdkを使ってオブジェクトをダウンロードする前に、最初に設定する必要がある他のポリシーや設定がありますか?ありがとう!ノード

コード:

var AWS = require('aws-sdk'); 
var s3 = new AWS.S3(); 

AWS.config = new AWS.Config(); 
AWS.config.accessKeyId = "myAccessKey"; 
AWS.config.secretAccessKey = "mySecretAccessKey"; 
AWS.config.region = "us-east-1"; 

var params = { Bucket: "myBucket", Key: "fileName" } 

s3.getObject(params, function(err, data) { 
    if (err) console.log(err, err.stack); 
    else  console.log(data); 
}); 

スタックトレース:

jemery62:aws/ (aws_edits✗) $ node main.js                  [21:26:21] 
{ AccessDenied: Access Denied 
    at Request.extractError (/Users/jemery62/dev/jimmyemery_com/node_modules/aws-sdk/lib/services/s3.js:577:35) 
    at Request.callListeners (/Users/jemery62/dev/jimmyemery_com/node_modules/aws-sdk/lib/sequential_executor.js:105:20) 
    at Request.emit (/Users/jemery62/dev/jimmyemery_com/node_modules/aws-sdk/lib/sequential_executor.js:77:10) 
    at Request.emit (/Users/jemery62/dev/jimmyemery_com/node_modules/aws-sdk/lib/request.js:683:14) 
    at Request.transition (/Users/jemery62/dev/jimmyemery_com/node_modules/aws-sdk/lib/request.js:22:10) 
    at AcceptorStateMachine.runTo (/Users/jemery62/dev/jimmyemery_com/node_modules/aws-sdk/lib/state_machine.js:14:12) 
    at /Users/jemery62/dev/jimmyemery_com/node_modules/aws-sdk/lib/state_machine.js:26:10 
    at Request.<anonymous> (/Users/jemery62/dev/jimmyemery_com/node_modules/aws-sdk/lib/request.js:38:9) 
    at Request.<anonymous> (/Users/jemery62/dev/jimmyemery_com/node_modules/aws-sdk/lib/request.js:685:12) 
    at Request.callListeners (/Users/jemery62/dev/jimmyemery_com/node_modules/aws-sdk/lib/sequential_executor.js:115:18) 
    message: 'Access Denied', 
    code: 'AccessDenied', 
    region: null, 
    time: 2017-10-27T02:26:23.394Z, 
    requestId: 'DDD8D2211A6F4551', 
    extendedRequestId: 'adUqsuXLIs0EIuy62/9YwcDWiil+ms9fX7+q4GIOxXWos5/5Jgvs3JQsg4N3BchWPnjIjj6Yqjg=', 
    cfId: undefined, 
    statusCode: 403, 
    retryable: false, 
    retryDelay: 23.592474526046313 } 'AccessDenied: Access Denied\n at Request.extractError (/Users/jemery62/dev/jimmyemery_com/node_modules/aws-sdk/lib/services/s3.js:577:35)\n at Request.callListeners (/Users/jemery62/dev/jimmyemery_com/node_modules/aws-sdk/lib/sequential_executor.js:105:20)\n at Request.emit (/Users/jemery62/dev/jimmyemery_com/node_modules/aws-sdk/lib/sequential_executor.js:77:10)\n at Request.emit (/Users/jemery62/dev/jimmyemery_com/node_modules/aws-sdk/lib/request.js:683:14)\n at Request.transition (/Users/jemery62/dev/jimmyemery_com/node_modules/aws-sdk/lib/request.js:22:10)\n at AcceptorStateMachine.runTo (/Users/jemery62/dev/jimmyemery_com/node_modules/aws-sdk/lib/state_machine.js:14:12)\n at /Users/jemery62/dev/jimmyemery_com/node_modules/aws-sdk/lib/state_machine.js:26:10\n at Request.<anonymous> (/Users/jemery62/dev/jimmyemery_com/node_modules/aws-sdk/lib/request.js:38:9)\n at Request.<anonymous> (/Users/jemery62/dev/jimmyemery_com/node_modules/aws-sdk/lib/request.js:685:12)\n at Request.callListeners (/Users/jemery62/dev/jimmyemery_com/node_modules/aws-sdk/lib/sequential_executor.js:115:18)' 

答えて

2

この問題は、S3のクライアントを作成した後、 "設定" を設定しているということです。コードを次のように変更します。

var AWS = require('aws-sdk'); 

AWS.config = new AWS.Config(); 
AWS.config.accessKeyId = "myAccessKey"; 
AWS.config.secretAccessKey = "mySecretAccessKey"; 
AWS.config.region = "us-east-1"; 

var s3 = new AWS.S3(); 

var params = { Bucket: "myBucket", Key: "fileName" } 

s3.getObject(params, function(err, data) { 
    if (err) console.log(err, err.stack); 
    else  console.log(data); 
});