You are on page 1of 2

```java

//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by FernFlower decompiler)
//

package com.boohoo.esbdefused.test.tools;

import com.amazonaws.regions.Regions;
import com.amazonaws.services.s3.AmazonS3;
import com.amazonaws.services.s3.AmazonS3ClientBuilder;
import com.amazonaws.services.s3.model.DeleteObjectsRequest;
import com.amazonaws.services.s3.model.ListObjectsRequest;
import com.amazonaws.services.s3.model.ObjectListing;
import com.amazonaws.services.s3.model.S3Object;
import com.amazonaws.services.s3.model.S3ObjectSummary;
import java.io.File;
import java.util.Comparator;
import java.util.List;
import java.util.Optional;
import java.util.stream.Collectors;

public final class S3Utils {


private static final AmazonS3 client = s3Client();

private static AmazonS3 s3Client() {


return (AmazonS3)
((AmazonS3ClientBuilder)AmazonS3ClientBuilder.standard().withRegion(Regions.EU_WEST_1)).
build();
}

public static void clean(String bucketName) {


ObjectListing listings = client.listObjects(bucketName);
List<DeleteObjectsRequest.KeyVersion> keys =
(List)listings.getObjectSummaries().stream().map((listing) -> {
return new DeleteObjectsRequest.KeyVersion(listing.getKey());
}).collect(Collectors.toList());
DeleteObjectsRequest deleteObjectsRequest;
if (!keys.isEmpty()) {
deleteObjectsRequest = (new
DeleteObjectsRequest(bucketName)).withKeys(keys).withQuiet(false);
client.deleteObjects(deleteObjectsRequest);
}

while(listings.isTruncated()) {
listings = client.listNextBatchOfObjects(listings);
keys = (List)listings.getObjectSummaries().stream().map((listing) -> {
return new DeleteObjectsRequest.KeyVersion(listing.getKey());
}).collect(Collectors.toList());
deleteObjectsRequest = (new
DeleteObjectsRequest(bucketName)).withKeys(keys).withQuiet(false);
client.deleteObjects(deleteObjectsRequest);
}
}

public static Optional<S3Object> getFirstObject(String bucketName) {


return
client.listObjects(bucketName).getObjectSummaries().stream().findFirst().map((listing) -> {
return client.getObject(bucketName, listing.getKey());
});
}

public static List<S3ObjectSummary> listObjects(String bucketName, int limit) {


return client.listObjects(new ListObjectsRequest(bucketName, (String)null, (String)null,
(String)null, limit)).getObjectSummaries();
}

public static List<S3ObjectSummary> listObjects(String bucketName, String prefix, int limit) {


return client.listObjects(new ListObjectsRequest(bucketName, prefix, (String)null,
(String)null, limit)).getObjectSummaries();
}

public static boolean hasObject(String bucketName, String prefix) {


return !client.listObjects(bucketName, prefix).getObjectSummaries().isEmpty();
}

public static S3Object getObjectByKey(String bucketName, String key) {


return client.getObject(bucketName, key);
}

public static Optional<S3Object> getObjectByPrefix(String bucketName, String prefix) {


return client.listObjects(bucketName,
prefix).getObjectSummaries().stream().max(Comparator.comparing(S3ObjectSummary::getLast
Modified)).map((listing) -> {
return client.getObject(bucketName, listing.getKey());
});
}

public static boolean isEmpty(String bucketName) {


return client.listObjects(bucketName).getObjectSummaries().isEmpty();
}

public static void putObject(String bucketName, String fileName, File file) {


client.putObject(bucketName, fileName, file);
}

public static String envPrefix() {


return Env.isDevVm() ? "dev-" + Env.developer() + "-" : "acceptance-";
}

private S3Utils() {
throw new UnsupportedOperationException("This is a utility class and cannot be
instantiated");
}
}
```

You might also like