2016-05-29 23 views
0

aws s3にデータをアップロードするelectron.jsアプリケーションを開発しようとしていますが、jsonファイルから資格情報を読み込もうとしているときに問題があります。 JSONファイルは、以下のようになります。Node.jsとawsの資格情報エラー

{ "accessKeyId": "my access key", "secretAccessKey": "my secret", "region": "eu-west-1" } 

とJSONファイルをロードコード:

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

/* 
I tried both to load from 'path' string and loading './accounts.json' 
*/ 

var path = process.cwd() + '/accounts.json'; 
console.log(path); 
AWS.config.loadFromPath(path); 

var s3 = new AWS.S3(); 

s3.listBuckets(function (err, data) { 
    if (err) { 
     console.log(err); 
    } 
    else { 
     for (var index in data.Buckets) { 
      var bucket = data.Buckets[index]; 
      console.log("Bucket: ", bucket.Name); 
     } 
    } 
}); 

エラーはこれです:

Uncaught TypeError: Cannot read property 'accessKeyId' of null 

EDIT

Iをまた、絶対フォルダ(例えば、 '/home/user/project/file.json')、buそれだけでこのように、資格情報をコーディング一生懸命働いて、それは動作しません。T:

AWS.config.update({ 
    accessKeyId: "access key id", 
    secretAccessKey: "secret access key", 
    "region": "eu-west-1" 
}); 
+0

一見すると、あなたのコードはOKと思われます。あなたのパスが正しいかどうかを調べるために、最初に 'path'変数にファイルの内容を出力しようとしますか? –

+0

私はすでにパスの内容を出力していますが、それは問題ありませんが、まったく動作しません –

+2

これはあなたの質問に答えることはできませんが、IAM_roleをEC2インスタンスに割り当てることをお勧めします(EC2 )、アクセスキーと秘密を使用することで、混乱と関連するセキュリティの低下を回避できます。 http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-roles-for-amazon-ec2.html – thoean

答えて

0

エレクトロンは、それがAWS SDKに正しく動作せないいくつかの問題

2

私は、サンプルコードを持っているを持っています私はテストして、それは動作します。 drone.io出力(およびソースコード)にリンクします。 がオブジェクト 作るためにJSONファイルをロードし、AWS.config.update

を使用して資格情報を更新します。私はこれを使用し

AWS.config.loadFromPath(path); 

:私の変更は、私はこれを使用していないということでした https://drone.io/github.com/ttwd80/electron-aws/27

const keys = require(__dirname + '/keys.json'); 
AWS.config.update({"accessKeyId": keys.awsAccessKey, "secretAccessKey": keys.awsSecretKey, "region": keys.region}); 
関連する問題