diff --git a/services/git-bridge/pom.xml b/services/git-bridge/pom.xml index fbe4058f03..7c9cdaa0e2 100644 --- a/services/git-bridge/pom.xml +++ b/services/git-bridge/pom.xml @@ -29,7 +29,7 @@ 1.5.20 5.15.0 5.20.0 - 1.12.793 + 2.36.2 ${jaxb.runtime.version} 2.3.2 4.5.14 @@ -210,10 +210,10 @@ ${mockito.version} test - + - com.amazonaws - aws-java-sdk-s3 + software.amazon.awssdk + s3 ${aws.java.sdk.version} diff --git a/services/git-bridge/src/main/java/uk/ac/ic/wlgitbridge/bridge/swap/store/S3SwapStore.java b/services/git-bridge/src/main/java/uk/ac/ic/wlgitbridge/bridge/swap/store/S3SwapStore.java index 3d3c4b7d5b..8171d31e02 100644 --- a/services/git-bridge/src/main/java/uk/ac/ic/wlgitbridge/bridge/swap/store/S3SwapStore.java +++ b/services/git-bridge/src/main/java/uk/ac/ic/wlgitbridge/bridge/swap/store/S3SwapStore.java @@ -1,19 +1,20 @@ package uk.ac.ic.wlgitbridge.bridge.swap.store; -import com.amazonaws.auth.AWSStaticCredentialsProvider; -import com.amazonaws.auth.BasicAWSCredentials; -import com.amazonaws.client.builder.AwsClientBuilder.EndpointConfiguration; -import com.amazonaws.services.s3.AmazonS3; -import com.amazonaws.services.s3.AmazonS3ClientBuilder; -import com.amazonaws.services.s3.model.*; import java.io.InputStream; +import software.amazon.awssdk.auth.credentials.AwsBasicCredentials; +import software.amazon.awssdk.auth.credentials.StaticCredentialsProvider; +import software.amazon.awssdk.core.sync.RequestBody; +import software.amazon.awssdk.regions.Region; +import software.amazon.awssdk.services.s3.S3Client; +import software.amazon.awssdk.services.s3.S3ClientBuilder; +import software.amazon.awssdk.services.s3.model.*; /* * Created by winston on 21/08/2016. */ public class S3SwapStore implements SwapStore { - private final AmazonS3 s3; + private final S3Client s3; private final String bucketName; @@ -27,24 +28,20 @@ public class S3SwapStore implements SwapStore { } S3SwapStore(String accessKey, String secret, String bucketName, String region, String endpoint) { - String regionToUse = null; + Region regionToUse = null; if (region == null) { - regionToUse = "us-east-1"; + regionToUse = Region.US_EAST_1; } else { - regionToUse = region; + regionToUse = Region.of(region); } - - AmazonS3ClientBuilder builder = - AmazonS3ClientBuilder.standard() - .withCredentials( - new AWSStaticCredentialsProvider(new BasicAWSCredentials(accessKey, secret))); + S3ClientBuilder builder = + S3Client.builder() + .region(regionToUse) + .credentialsProvider( + StaticCredentialsProvider.create(AwsBasicCredentials.create(accessKey, secret))); if (endpoint != null && !endpoint.isEmpty()) { - builder - .enablePathStyleAccess() - .withEndpointConfiguration(new EndpointConfiguration(endpoint, regionToUse)); - } else { - builder.withRegion(regionToUse); + builder.forcePathStyle(true).endpointOverride(java.net.URI.create(endpoint)); } s3 = builder.build(); this.bucketName = bucketName; @@ -52,22 +49,25 @@ public class S3SwapStore implements SwapStore { @Override public void upload(String projectName, InputStream uploadStream, long contentLength) { - ObjectMetadata metadata = new ObjectMetadata(); - metadata.setContentLength(contentLength); - PutObjectRequest put = new PutObjectRequest(bucketName, projectName, uploadStream, metadata); - PutObjectResult res = s3.putObject(put); + PutObjectRequest put = + PutObjectRequest.builder() + .bucket(bucketName) + .key(projectName) + .contentLength(contentLength) + .build(); + s3.putObject(put, RequestBody.fromInputStream(uploadStream, contentLength)); } @Override public InputStream openDownloadStream(String projectName) { - GetObjectRequest get = new GetObjectRequest(bucketName, projectName); - S3Object res = s3.getObject(get); - return res.getObjectContent(); + GetObjectRequest get = GetObjectRequest.builder().bucket(bucketName).key(projectName).build(); + return s3.getObject(get); } @Override public void remove(String projectName) { - DeleteObjectRequest del = new DeleteObjectRequest(bucketName, projectName); + DeleteObjectRequest del = + DeleteObjectRequest.builder().bucket(bucketName).key(projectName).build(); s3.deleteObject(del); }