package org.cfg4j.source.s3; import com.amazonaws.services.s3.AmazonS3Client; import com.amazonaws.services.s3.model.GetObjectRequest; import com.amazonaws.services.s3.model.S3Object; import com.amazonaws.util.IOUtils; import java.io.IOException; import java.io.InputStream; public class AmazonS3WrapperImpl extends AWSWrapper implements AmazonS3Wrapper { private final String accessKey; private final String secretKey; private String bucketName; private AmazonS3Client s3client; public AmazonS3WrapperImpl(String accessKey, String secretKey, String bucketName) { this.accessKey = accessKey; this.secretKey = secretKey; this.bucketName = bucketName; } @Override public void init(){ initCredentials(accessKey, secretKey); s3client = new AmazonS3Client(credentials); } @Override public boolean isFileExist(String fileName) { return fileName != null && !fileName.isEmpty() && s3client.doesObjectExist(getBucketName(), fileName); } @Override public boolean isBucketExist(String bucketName){ return s3client.doesBucketExist(bucketName); } @Override public S3Object getFile(String fileName) { return s3client.getObject(new GetObjectRequest(bucketName, fileName)); } @Override public String getFileContent(String fileName) { S3Object fileData = getFile(fileName); return getFileContent(fileData); } @Override public String getFileContent(S3Object obj){ InputStream is = obj.getObjectContent(); String fileContent = new String(); try { fileContent = IOUtils.toString(is); obj.close(); is.close(); } catch (IOException e) { e.printStackTrace(); } return fileContent; } public String getBucketName() { return bucketName; } public void setBucketName(String bucketName) { this.bucketName = bucketName; } }