diff --git a/g11n-ws/modules/md-data-api-s3impl/src/main/java/com/vmware/vip/messages/data/conf/S3Client.java b/g11n-ws/modules/md-data-api-s3impl/src/main/java/com/vmware/vip/messages/data/conf/S3Client.java index 3d488516f..839774d05 100644 --- a/g11n-ws/modules/md-data-api-s3impl/src/main/java/com/vmware/vip/messages/data/conf/S3Client.java +++ b/g11n-ws/modules/md-data-api-s3impl/src/main/java/com/vmware/vip/messages/data/conf/S3Client.java @@ -12,6 +12,7 @@ import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Profile; +import com.amazonaws.ClientConfiguration; import com.amazonaws.auth.AWSCredentialsProvider; import com.amazonaws.auth.AWSStaticCredentialsProvider; import com.amazonaws.auth.BasicAWSCredentials; @@ -112,8 +113,9 @@ private synchronized AmazonS3 getAmazonS3() { sessionCreds.getAccessKeyId(), sessionCreds.getSecretAccessKey(), sessionCreds.getSessionToken()); + ClientConfiguration clientConfiguration = new ClientConfiguration().withMaxErrorRetry(5).withMaxConnections(config.getS3ClientMaxConnections()); return AmazonS3ClientBuilder.standard().withCredentials(new AWSStaticCredentialsProvider(sessionCredentials)) - .withRegion(config.getS3Region()).enablePathStyleAccess().build(); + .withRegion(config.getS3Region()).withClientConfiguration(clientConfiguration).enablePathStyleAccess().build(); } diff --git a/g11n-ws/modules/md-data-api-s3impl/src/main/java/com/vmware/vip/messages/data/conf/S3Config.java b/g11n-ws/modules/md-data-api-s3impl/src/main/java/com/vmware/vip/messages/data/conf/S3Config.java index c745db4fb..3d5537107 100644 --- a/g11n-ws/modules/md-data-api-s3impl/src/main/java/com/vmware/vip/messages/data/conf/S3Config.java +++ b/g11n-ws/modules/md-data-api-s3impl/src/main/java/com/vmware/vip/messages/data/conf/S3Config.java @@ -80,7 +80,8 @@ public class S3Config { @Value("${allow.list.path.bucketName:}") private String allowListBucketName; - + @Value("${s3.client.max.connections:500}") + private int s3ClientMaxConnections; public String getAccessKey() { if (this.encryption) { @@ -159,6 +160,10 @@ public String getRoleArn() { return roleArn; } + public int getS3ClientMaxConnections() { + return s3ClientMaxConnections; + } + public String getAllowListBucketName() { if (this.allowListBucketName != null && (!this.allowListBucketName.isBlank())){ return this.allowListBucketName;