Grant[] grants = null;
if (acl != null) {
grants = convertACLtoGrants(acl);
}
CopyObjectResult result = s3SoapBinding.copyObject(
sourceBucketName, sourceObjectKey, destinationBucketName,
destinationObjectKey, metadataDirective, metadata, grants,
ifModifiedSince, ifUnmodifiedSince, ifMatchTags, ifNoneMatchTags,
null, getAWSAccessKey(), timestamp, signature, null);
Map resultMap = new HashMap();
resultMap.put("ETag", result.getETag());
resultMap.put("Last-Modified", result.getLastModified().getTime());
return resultMap;
} catch (RuntimeException e) {
throw e;
} catch (Exception e) {
throw new S3ServiceException("Unable to Copy Object from '" +