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..9c260a184 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 @@ -1,5 +1,5 @@ /** - * Copyright 2019-2023 VMware, Inc. + * Copyright 2019-2024 VMware, Inc. * SPDX-License-Identifier: EPL-2.0 */ package com.vmware.vip.messages.data.conf; @@ -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..ca2458cc7 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 @@ -20,6 +20,10 @@ import org.springframework.core.io.Resource; import org.springframework.core.io.support.PathMatchingResourcePatternResolver; +/** + * Copyright 2019-2024 VMware, Inc. + * SPDX-License-Identifier: EPL-2.0 + */ /** * the configuration of the S3 client */ @@ -80,7 +84,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 +164,10 @@ public String getRoleArn() { return roleArn; } + public int getS3ClientMaxConnections() { + return s3ClientMaxConnections; + } + public String getAllowListBucketName() { if (this.allowListBucketName != null && (!this.allowListBucketName.isBlank())){ return this.allowListBucketName;