@Override
  public Object handle (TaskExecution aTask) throws Exception {
    AmazonS3URI s3Uri = new AmazonS3URI(aTask.getRequiredString("uri"));
    
    S3Presigner presigner = S3Presigner.create();
    
    PresignedGetObjectRequest presignedRequest =
        presigner.presignGetObject(z -> z.signatureDuration(Duration.parse("PT"+aTask.getRequiredString("signatureDuration")))
                .getObjectRequest(por -> por.bucket(s3Uri.getBucket()).key(s3Uri.getKey())));
    
    
    return presignedRequest.url().toString();
  }
Presign a GetObjectRequest so that it can be executed at a later time without 
requiring additional signing or authentication.

@author Arik Cohen
@since Feb, 19 2020
src/main/java/com/creactiviti/piper/taskhandler/s3/S3PresignedGetObject.java