-
Notifications
You must be signed in to change notification settings - Fork 18
Description
Problem:
S3EncryptionClient.builder() requires region as a mandatory input, even when endpointOverride is provided. This is a difference in behaviour from earlier version, where it was allowed to create the builder with only endpointConfiguration and without region.
Due to this, we have to pass a default region value always, resulting in ResourceNotFoundException for S3 Compatible vendors using a bucket in a different region. If no region is provided, and only endpoint is given, it works fine when using com.amazonaws.aws.
Solution:
Allow region to be empty when endpointOverride is defined.
Additional information
We are using these SDKs in Scala code
Java Version: Azul Zulu: 11.80.21
Scala Version: 2.12.19
SDK versions
com.amazonaws.aws: 1.12.768
amazon-s3-encryption-client-java: 3.3.5
software.amazon.awssdk.s3: 2.31.67
Sample Code
Using com.amazonaws.aws
AmazonS3EncryptionClientV2Builder
.standard()
.withEndpointConfiguration(
new EndpointConfiguration(endpoint, region)
)
Using software.amazon.awssdk.s3
S3EncryptionClient
.builder()
.endpointOverride(s3UriEndpoint)
.region(Region.of(s3Region)) --> Fails without passing this