Reputation: 41
StaticCredentialsProvider provider = StaticCredentialsProvider.create(AwsBasicCredentials.create("Access key ID", "Access secret key"));
S3Client s3 = S3Client.builder().credentialsProvider(provider).build())
List<Bucket> buckets = s3.listBuckets().buckets();
for (Bucket bucket : buckets) {
System.out.println("bucket name: " + bucket.name());
}
I am trying this code to connect to S3 storage to get the bucket details but always getting the error Unable to load region from any of the providers in the chain software.amazon.awssdk.regions.providers.DefaultAwsRegionProviderChain. Not sure what is wrong here. Please help.
Upvotes: 0
Views: 570
Reputation: 3455
Simply you need to tell the S3 service what region your buckets reside in:
StaticCredentialsProvider provider = StaticCredentialsProvider.create(
AwsBasicCredentials.create("Access key ID", "Access secret key"));
S3Client s3 = S3Client.builder().credentialsProvider(provider)
.region(Region.EU_WEST_2) // <<<<<<<<<<<<<<<<<<<<<<<<< you need a region here
.build();
List<Bucket> buckets = s3.listBuckets().buckets();
for (Bucket bucket : buckets) {
System.out.println("bucket name: " + bucket.name());
}
Upvotes: 0