diff --git a/src/main/java/software/amazon/nio/spi/s3/S3ClientProvider.java b/src/main/java/software/amazon/nio/spi/s3/S3ClientProvider.java index 47977492..7d1a1f0b 100644 --- a/src/main/java/software/amazon/nio/spi/s3/S3ClientProvider.java +++ b/src/main/java/software/amazon/nio/spi/s3/S3ClientProvider.java @@ -52,7 +52,7 @@ public class S3ClientProvider { final protected S3NioSpiConfiguration configuration; /** - * Default client using the "https://s3.us-east-1.amazonaws.com" endpoint + * Default client using the "..." endpoint */ private static final S3Client DEFAULT_CLIENT = S3Client.builder() .endpointOverride(URI.create("https://s3.us-east-1.amazonaws.com")) @@ -60,7 +60,7 @@ public class S3ClientProvider { .build(); /** - * Default asynchronous client using the "https://s3.us-east-1.amazonaws.com" endpoint + * Default asynchronous client using the "..." endpoint */ private static final S3AsyncClient DEFAULT_ASYNC_CLIENT = S3AsyncClient.builder() .endpointOverride(URI.create("https://s3.us-east-1.amazonaws.com")) @@ -181,11 +181,8 @@ private T getClientForBucket( logger.debug("generating client for bucket: '{}'", bucketName); T bucketSpecificClient = null; - if ((configuration.getEndpoint() == null) || configuration.getEndpoint().isBlank()) { - // - // we try to locate a bucket only if no endpoint is provided, which - // means we are dealing with AWS S3 buckets - // + if (configuration.endpointURI() == null) { + // we try to locate a bucket only if no endpoint is provided, which means we are dealing with AWS S3 buckets String bucketLocation = determineBucketLocation(bucketName, locationClient); if ( bucketLocation != null) { @@ -250,24 +247,7 @@ private S3AsyncClient asyncClientForRegion(String regionName, boolean crt) { if (!crt) { return configureClientForRegion(regionName, S3AsyncClient.builder()); } - Region region = getRegionFromRegionName(regionName); - logger.debug("bucket region is: '{}'", region.id()); - - URI endpointUri = configuration.endpointURI(); - if (endpointUri != null) { - asyncClientBuilder.endpointOverride(endpointUri); - } - - AwsCredentials credentials = configuration.getCredentials(); - if (credentials != null) { - asyncClientBuilder.credentialsProvider(() -> credentials); - } - - return asyncClientBuilder.forcePathStyle(configuration.getForcePathStyle()).region(region).build(); - } - - private static Region getRegionFromRegionName(String regionName) { - return (regionName == null || regionName.isBlank()) ? Region.US_EAST_1 : Region.of(regionName); + return configureCrtClientForRegion(regionName); } private > ActualClient configureClientForRegion( @@ -298,4 +278,26 @@ private credentials); + } + + return asyncClientBuilder.forcePathStyle(configuration.getForcePathStyle()).region(region).build(); + } + + private static Region getRegionFromRegionName(String regionName) { + return (regionName == null || regionName.isBlank()) ? Region.US_EAST_1 : Region.of(regionName); + } + }