5858import software .amazon .awssdk .awscore .exception .AwsServiceException ;
5959import software .amazon .awssdk .regions .Region ;
6060import software .amazon .awssdk .services .s3 .S3AsyncClient ;
61+ import software .amazon .awssdk .services .s3 .S3Configuration ;
6162import software .amazon .awssdk .services .s3 .model .Bucket ;
6263import software .amazon .awssdk .services .s3 .model .ChecksumAlgorithm ;
6364import software .amazon .awssdk .services .s3 .model .HeadObjectResponse ;
65+ import software .amazon .awssdk .services .s3 .presigner .S3Presigner ;
6466
6567/**
6668 * @author Luca Giamminonni (luca.giamminonni at 4science.com)
@@ -69,11 +71,9 @@ public class S3BitStoreServiceIT extends AbstractIntegrationTestWithDatabase {
6971 private static S3MockContainer s3Mock = new S3MockContainer ("4.8.0" );
7072
7173 private static S3AsyncClient s3AsyncClient ;
74+ private static S3Presigner s3Presigner ;
7275
7376 private static final String DEFAULT_BUCKET_NAME = "dspace-asset-localhost" ;
74- public static final String S3_ENDPOINT = "http://127.0.0.1:8001" ;
75- public static final int MAX_CONNECTIONS = 5 ;
76- public static final int CONNECTION_TIMEOUT = 1000 ;
7777
7878 private S3BitStoreService s3BitStoreService ;
7979
@@ -87,11 +87,25 @@ public class S3BitStoreServiceIT extends AbstractIntegrationTestWithDatabase {
8787 public static void setupS3 () {
8888 s3Mock .start ();
8989
90+ AnonymousCredentialsProvider credentialsProvider = AnonymousCredentialsProvider .create ();
91+ Region region = Region .US_EAST_1 ;
92+ URI s3URI = URI .create ("http://127.0.0.1:" + s3Mock .getHttpServerPort ());
9093 s3AsyncClient = S3AsyncClient .crtBuilder ()
91- .endpointOverride (URI .create ("http://127.0.0.1:" + s3Mock .getHttpServerPort ()))
92- .credentialsProvider (AnonymousCredentialsProvider .create ())
93- .region (Region .US_EAST_1 )
94- .build ();
94+ .endpointOverride (s3URI )
95+ .credentialsProvider (credentialsProvider )
96+ .region (region )
97+ .build ();
98+
99+ s3Presigner = S3Presigner .builder ()
100+ .endpointOverride (s3URI )
101+ .credentialsProvider (credentialsProvider )
102+ .region (region )
103+ .serviceConfiguration (
104+ S3Configuration .builder ()
105+ .pathStyleAccessEnabled (true )
106+ .build ()
107+ )
108+ .build ();
95109 }
96110
97111 @ AfterClass
@@ -105,7 +119,7 @@ public void setup() throws Exception {
105119 configurationService .setProperty ("assetstore.s3.enabled" , "true" );
106120 s3Directory = new File (System .getProperty ("java.io.tmpdir" ), "s3" );
107121
108- s3BitStoreService = new S3BitStoreService (s3AsyncClient );
122+ s3BitStoreService = new S3BitStoreService (s3AsyncClient , s3Presigner );
109123 s3BitStoreService .setEnabled (BooleanUtils .toBoolean (
110124 configurationService .getProperty ("assetstore.s3.enabled" )));
111125 s3BitStoreService .setS3ChecksumAlgorithm (ChecksumAlgorithm .SHA256 );
0 commit comments