Open
Description
I am trying to create s3client which works for cross regions by enabling useArnRegionEnabled
flag and by passing arn
of the bucket as suggested here . S3Client is created with region us-west-1 and the bucket is in us-east-2.
S3Client s3client = S3Client.builder().region(Region.US_WEST_1)
.serviceConfiguration(s-> s.useArnRegionEnabled(true).build())
.credentialsProvider(StaticCredentialsProvider.create(credentials)).build();
String location = s3client.getBucketLocation(b-> b.bucket("arn:aws:s3:::mybucket")
.build()).locationConstraintAsString();
System.out.println(location);
But the sdk is throwing the following error
Exception in thread "main" java.lang.IllegalArgumentException: Unknown ARN type
at software.amazon.awssdk.services.s3.internal.resource.S3ArnConverter.lambda$convertArn$0(S3ArnConverter.java:61)
at java.base/java.util.Optional.orElseThrow(Optional.java:408)
at software.amazon.awssdk.services.s3.internal.resource.S3ArnConverter.convertArn(S3ArnConverter.java:61)
at software.amazon.awssdk.services.s3.internal.endpoints.S3AccessPointEndpointResolver.applyEndpointConfiguration(S3AccessPointEndpointResolver.java:61)
at software.amazon.awssdk.services.s3.internal.handlers.EndpointAddressInterceptor.modifyHttpRequest(EndpointAddressInterceptor.java:53)
at software.amazon.awssdk.core.interceptor.ExecutionInterceptorChain.modifyHttpRequestAndHttpContent(ExecutionInterceptorChain.java:90)
at software.amazon.awssdk.core.internal.handler.BaseClientHandler.runModifyHttpRequestAndHttpContentInterceptors(BaseClientHandler.java:163)
at software.amazon.awssdk.core.internal.handler.BaseClientHandler.finalizeSdkHttpFullRequest(BaseClientHandler.java:88)
at software.amazon.awssdk.core.internal.handler.BaseSyncClientHandler.doExecute(BaseSyncClientHandler.java:143)
at software.amazon.awssdk.core.internal.handler.BaseSyncClientHandler.lambda$execute$1(BaseSyncClientHandler.java:112)
at software.amazon.awssdk.core.internal.handler.BaseSyncClientHandler.measureApiCallSuccess(BaseSyncClientHandler.java:167)
at software.amazon.awssdk.core.internal.handler.BaseSyncClientHandler.execute(BaseSyncClientHandler.java:94)
at software.amazon.awssdk.core.client.handler.SdkSyncClientHandler.execute(SdkSyncClientHandler.java:45)
at software.amazon.awssdk.awscore.client.handler.AwsSyncClientHandler.execute(AwsSyncClientHandler.java:55)
at software.amazon.awssdk.services.s3.DefaultS3Client.getBucketLocation(DefaultS3Client.java:3170)
at software.amazon.awssdk.services.s3.S3Client.getBucketLocation(S3Client.java:5007)
Bucket ARN is copied from the S3 console
Your Environment
- AWS Java SDK version used: 2.5.15
- JDK version used: JDK 11
- Operating System and version: Windows 10