@@ -119,7 +119,7 @@ private void initialize() throws Exception {
119119 this .folder = folder ;
120120
121121 this .client = buildS3Client (accessKey , secretKey , endpointValue , clientRegion );
122- this .presigner = buildS3Presinger (accessKey , secretKey , clientRegion );
122+ this .presigner = buildS3Presigner (accessKey , secretKey , clientRegion );
123123 bucketExists ();
124124 }
125125 }
@@ -129,21 +129,20 @@ private S3Client buildS3Client(String accessKey, String secretKey, String endpoi
129129
130130 boolean bUseIAM = !getPropertyValue (USE_IAM , "" , "" ).isEmpty () || (accessKey .equals ("" ) && secretKey .equals ("" ));
131131
132- S3ClientBuilder builder = bUseIAM ?
133- S3Client .builder () :
134- S3Client .builder ().credentialsProvider (
135- StaticCredentialsProvider .create (
136- AwsBasicCredentials .create (accessKey , secretKey )
137- )
138- );
132+ S3ClientBuilder builder = bUseIAM
133+ ? S3Client .builder (). credentialsProvider ( DefaultCredentialsProvider . create ())
134+ : S3Client .builder ().credentialsProvider (
135+ StaticCredentialsProvider .create (
136+ AwsBasicCredentials .create (accessKey , secretKey )
137+ )
138+ );
139139
140140 if (bUseIAM ) {
141141 logger .debug ("Using IAM Credentials" );
142142 }
143143
144144 if (!endpoint .isEmpty () && !endpoint .contains (".amazonaws.com" )) {
145145 pathStyleUrls = true ;
146-
147146 s3Client = builder
148147 .endpointOverride (URI .create (endpoint ))
149148 .region (Region .of (region ))
@@ -179,11 +178,22 @@ private S3Client buildS3Client(String accessKey, String secretKey, String endpoi
179178 return s3Client ;
180179 }
181180
182- private S3Presigner buildS3Presinger (String accessKey , String secretKey , String region ) {
183- return S3Presigner .builder ()
181+ private S3Presigner buildS3Presigner (String accessKey , String secretKey , String region ) {
182+ boolean bUseIAM = !getPropertyValue (USE_IAM , "" , "" ).isEmpty () || (accessKey .equals ("" ) && secretKey .equals ("" ));
183+
184+ S3Presigner .Builder builder = S3Presigner .builder ()
184185 .region (Region .of (region ))
185- .credentialsProvider (StaticCredentialsProvider .create (AwsBasicCredentials .create (accessKey , secretKey )))
186- .build ();
186+ .credentialsProvider (
187+ bUseIAM
188+ ? DefaultCredentialsProvider .create ()
189+ : StaticCredentialsProvider .create (AwsBasicCredentials .create (accessKey , secretKey ))
190+ );
191+
192+ if (bUseIAM ) {
193+ logger .debug ("Using IAM Credentials for presigner" );
194+ }
195+
196+ return builder .build ();
187197 }
188198
189199 private void bucketExists () {
0 commit comments