in aws-core-common/src/main/java/jetbrains/buildServer/util/amazon/AWSClients.java [158:199]
public S3AsyncClient createS3AsyncClient(S3Util.S3AdvancedConfiguration advancedConfiguration, TlsTrustManagersProvider tlsTrustManagersProvider) {
ClientOverrideConfiguration.Builder overrideConfigurationBuilder = ClientConfigurationBuilder.clientOverrideConfigurationBuilder();
if (StringUtil.isNotEmpty(myS3SignerType)) {
overrideConfigurationBuilder.putAdvancedOption(SdkAdvancedClientOption.SIGNER, SIGNERS.getOrDefault(myS3SignerType, DEFAULT));
}
S3AsyncClientBuilder builder = S3AsyncClient.builder()
.defaultsMode(DefaultsMode.STANDARD)
.httpClientBuilder(ClientConfigurationBuilder.createAsyncClientBuilder(null, tlsTrustManagersProvider))
.overrideConfiguration(overrideConfigurationBuilder.build())
.serviceConfiguration(
config -> config.accelerateModeEnabled(myAccelerateModeEnabled)
.pathStyleAccessEnabled(!myDisablePathStyleAccess)
);
if (advancedConfiguration != null) {
builder.multipartConfiguration(
multipart -> multipart.thresholdInBytes(advancedConfiguration.getMultipartUploadThreshold())
.minimumPartSizeInBytes(advancedConfiguration.getMinimumUploadPartSize())
);
}
if (myCredentials != null) {
builder.credentialsProvider(StaticCredentialsProvider.create(myCredentials));
}
// null in myRegion will cause S3 client instantiation to fail
// we ensure, that we have at least default region
String region = myRegion;
if (myRegion == null) {
region = AwsCloudConnectorConstants.REGION_NAME_DEFAULT;
}
if (StringUtil.isNotEmpty(myServiceEndpoint)) {
builder.endpointOverride(URI.create(myServiceEndpoint));
}
builder.region(Region.of(region));
return builder.build();
}