Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package io.ansr.piker.unit
- import com.amazonaws.services.s3.AmazonS3Client
- import com.amazonaws.services.s3.model.CannedAccessControlList
- import com.amazonaws.services.s3.model.ObjectListing
- import com.amazonaws.services.s3.model.PutObjectRequest
- import com.amazonaws.services.s3.model.PutObjectResult
- import com.amazonaws.services.s3.model.S3ObjectSummary
- import io.ansr.piker.AppUtils
- import org.apache.commons.io.FileUtils
- import org.apache.commons.io.IOUtils
- import java.nio.file.Files
- import java.nio.file.StandardCopyOption
- class AmazonS3ClientUnitUtil extends AmazonS3Client{
- ObjectListing listObjects(String exportBucket, String campaignPk){
- //TODO create file listing for unit tests
- ObjectListing listing = new ObjectListing()
- listing.setBucketName(exportBucket)
- List<S3ObjectSummary> objects = []
- File directory = new File(exportBucket)
- if(directory.exists()){
- directory.eachFileRecurse { File internalFile ->
- S3ObjectSummary object = new S3ObjectSummary()
- object.setBucketName(exportBucket)
- object.setKey(internalFile.toString().substring(internalFile.toString().indexOf('/', 0) + 1))
- objects.add(object)
- }
- }
- listing.objectSummaries = objects
- return listing
- }
- PutObjectResult putObject(PutObjectRequest putObjectRequest){
- putObjectRequest.setCannedAcl(CannedAccessControlList.Private)
- final String filePath = [putObjectRequest.getBucketName(), putObjectRequest.getKey()].join('/')
- File s3Object = new File(filePath)
- if(putObjectRequest.file?.exists()){
- FileUtils.copyFile(putObjectRequest.file, s3Object)
- }else if(putObjectRequest.inputStream){
- Files.copy(putObjectRequest.inputStream,
- s3Object.toPath(),
- StandardCopyOption.REPLACE_EXISTING)
- IOUtils.closeQuietly(putObjectRequest.inputStream)
- }
- PutObjectResult result = new PutObjectResult()
- result.setMetadata(putObjectRequest.metadata)
- result.setVersionId(AppUtils.generatePk(10))
- result.setContentMd5(AppUtils.generatePk(10))
- return result
- }
- }
Add Comment
Please, Sign In to add comment