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"
});
一見すると、あなたのコードはOKと思われます。あなたのパスが正しいかどうかを調べるために、最初に 'path'変数にファイルの内容を出力しようとしますか? –
私はすでにパスの内容を出力していますが、それは問題ありませんが、まったく動作しません –
これはあなたの質問に答えることはできませんが、IAM_roleをEC2インスタンスに割り当てることをお勧めします(EC2 )、アクセスキーと秘密を使用することで、混乱と関連するセキュリティの低下を回避できます。 http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-roles-for-amazon-ec2.html – thoean