Ich versuche, eine electron.js App zu entwickeln, um Daten auf aws s3 hochzuladen, aber ich habe ein Problem beim Versuch, meine Anmeldeinformationen aus einer JSON-Datei zu laden. Die JSON-Datei sieht wie folgt aus:Node.js und aws Credentials Fehler
{ "accessKeyId": "my access key", "secretAccessKey": "my secret", "region": "eu-west-1" }
und der Code, der die JSON-Datei laden:
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);
}
}
});
Der Fehler ist dies:
Uncaught TypeError: Cannot read property 'accessKeyId' of null
EDIT
I habe auch versucht, einen absoluten Ordner zu erstellen (zB: '/home/user/project/file.json'), bu t es nicht funktioniert, funktioniert es nur schwer, die Anmeldeinformationen Codierung, wie folgt aus:
AWS.config.update({
accessKeyId: "access key id",
secretAccessKey: "secret access key",
"region": "eu-west-1"
});
Auf den ersten Blick scheint Ihr Code in Ordnung. Vielleicht versuchen Sie den Inhalt der Datei in 'Pfad' Variable zuerst zu drucken, um zu sehen, ob Ihr Pfad korrekt ist? –
Ich habe bereits den Inhalt des Pfades ausgedruckt und das ist in Ordnung, aber es funktioniert überhaupt nicht –
Während dies Ihre Frage nicht beantwortet, aber ich empfehle eine IAM_Role zu Ihrer EC2 Instanz zuweisen (vorausgesetzt, Ihr Code läuft auf EC2) und vermeiden Sie den Ärger und die damit verbundene verminderte Sicherheit durch die Verwendung von Zugangsschlüsseln und Geheimnissen. http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/iam-roles-for-amazon-ec2.html – thoean