2016-07-25 9 views
1

Ich versuche, eine Datei in S3 hochzuladen. Der Code, dies zu tun ist unten:AWS ProfileCredentialsProvider kann keine Anmeldeinformationen abrufen

AmazonS3 s3Client = new AmazonS3Client(new ProfileCredentialsProvider()); 
String key = String.format(Constants.KEY_NAME + "/%s/%s", activity_id, aFile.getName()); 
s3Client.putObject(Constants.BUCKET_NAME, key, aFile.getInputStream(), new ObjectMetadata()); 

Das Problem, das ich habe, ist, dass meine ProfileCredentialsProvider nicht meine AWS Schlüssel zugreifen können. Ich habe meine Umgebungsvariablen:

AWS_ACCESS_KEY=keys go here 
AWS_SECRET_KEY=keys go here 
AWS_ACCESS_KEY_ID=keys go here 
AWS_DEFAULT_REGION=us-east-1 
AWS_SECRET_ACCESS_KEY=keys go here 

Und je Amazon's Documentation die eingestellten Umgebungsvariablen haben Vorrang vor allen Konfigurationsdateien. Das führt mich zu der Frage, warum meine Schlüssel nicht von meinen Umgebungsvariablen gepackt werden.

Antwort

1

Ich habe es herausgefunden. Wenn Sie ProfileCredentialsProvider() angeben, sucht das AWS SDK unabhängig von der Priorität nach einer Konfigurationsdatei. Erstellen Sie einfach einen S3-Client wie folgt:

AmazonS3 s3Client = new AmazonS3Client(); 

Wird die verschiedenen Standorte für Anmeldeinformationen überprüfen.

Verwandte Themen