2017-06-16 2 views
0

Ich versuche, einen aws s3-Bucket mit dem folgenden Java-Code zu erstellen.Einstellen der AWS S3-Region

AmazonS3 s3client = AmazonS3ClientBuilder.defaultClient(); 
    s3client.setRegion(Region.getRegion(Regions.AP_SOUTH_1)); 

Aber ich die folgende Fehlermeldung erhalten:

"Ausnahme": "com.amazonaws.SdkClientException", "message":. „Es kann keine Region über die Region Provider Kette finden MÜSSEN eine explizite Region in der Builder- oder Setup-Umgebung, um eine Region bereitzustellen. "

Ich versuche, die Region falsch einzustellen? Bitte um Rat.

+0

einfach "ap-south-1" als String übergeben. –

+0

Eigentlich muss ich dies nach der Installation von AWS CLI als Eigenschaft in einer Konfigurationsdatei festlegen. Obwohl die Region jetzt abgeholt wird, erhalte ich einen anderen Fehler, der 400 Bad Request angibt. – codeLearner

Antwort

0

Der Grund für die Fehlermeldung ist, dass Sie AWS nicht mit Eclipse eingerichtet haben.

Wenn Sie Eclipse als IDE verwenden, dann lesen: http://docs.aws.amazon.com/toolkit-for-eclipse/v1/user-guide/welcome.html

Sobald das Profil Setup dann ist

AmazonS3 s3 = new AmazonS3Client (neu ProfileCredentialsProvider());

Region apSouth1 = Region.getRegion (Regions.AP_SOUTH_1);

s3.setRegion (apSouth1);

Auch stellen Sie sicher, importieren:

Import com.amazonaws.regions.Region;

importieren com.amazonaws.regions.Regions;

+0

Eigentlich habe ich AWS mit Eclipse eingerichtet. Die Credentials werden in beiden .aws/config-Datei und in Umgebungsvariablen auch festgelegt. Die Region und die Anmeldeinformationen werden ausgewählt, wie ich während des Debuggens sehen kann, aber ich bekomme 400 Bad Request Error . – codeLearner

+0

In Ihrem Fall, da Sie s3-Bucket erstellen - 400 Falscher Anforderungsfehler bedeutet InvalidBucketName - Der angegebene Bucket ist nicht gültig. Bucket-Namen müssen mindestens 3 und nicht mehr als 63 Zeichen lang sein. Bucket-Namen müssen eine Reihe von einem oder mehreren Labels sein. Benachbarte Beschriftungen sind durch einen einzelnen Punkt (.) Getrennt. Bucket-Namen können Kleinbuchstaben, Zahlen und Bindestriche enthalten. Jedes Etikett muss mit einem Kleinbuchstaben oder einer Zahl beginnen und enden. Bucket-Namen dürfen nicht als IP-Adresse (z. B. 192.168.5.4) formatiert sein. – Ali

0

Wenn Sie keine Proxies und Sie bereits Setup Ihre Anmeldeinformationen können Sie unter Code verwenden:

AmazonS3 s3client = AmazonS3ClientBuilder.standard() 
.withRegion(Region.getRegion(Regions.AP_SOUTH_1)); 

Aber wenn Sie einen Proxy einrichten müssen und manuell die Anmeldeinformationen festlegen, können Sie unter Code verwenden :

AWSCredentials cred = new BasicAWSCredentials(<accessKey>,<secretKey>); 
AmazonS3 s3client = AmazonS3ClientBuilder.standard() 
.withCredentials(new AWSStaticCredentialsProvider(cred)) 
.withClientConfiguration(<your configuration>) 
.withRegion(Region.getRegion(Regions.AP_SOUTH_1));