Skip to content

Exception when using ARN of the bucket #2244

Open
@rmunna

Description

@rmunna

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

image

Your Environment

  • AWS Java SDK version used: 2.5.15
  • JDK version used: JDK 11
  • Operating System and version: Windows 10

Metadata

Metadata

Assignees

No one assigned

    Labels

    documentationThis is a problem with documentation.p3This is a minor priority issue

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions