You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@oodt.apache.org by bf...@apache.org on 2014/05/31 08:18:18 UTC

svn commit: r1598827 - in /oodt/trunk/filemgr/src: main/java/org/apache/oodt/cas/filemgr/datatransfer/ main/resources/ test/org/apache/oodt/cas/filemgr/datatransfer/

Author: bfoster
Date: Sat May 31 06:18:17 2014
New Revision: 1598827

URL: http://svn.apache.org/r1598827
Log:
- Added encryption support to S3 DataTransferer

-----------
OODT-702

Modified:
    oodt/trunk/filemgr/src/main/java/org/apache/oodt/cas/filemgr/datatransfer/S3DataTransferer.java
    oodt/trunk/filemgr/src/main/java/org/apache/oodt/cas/filemgr/datatransfer/S3DataTransfererFactory.java
    oodt/trunk/filemgr/src/main/resources/filemgr.properties
    oodt/trunk/filemgr/src/test/org/apache/oodt/cas/filemgr/datatransfer/TestS3DataTransferer.java
    oodt/trunk/filemgr/src/test/org/apache/oodt/cas/filemgr/datatransfer/TestS3DataTransfererFactory.java

Modified: oodt/trunk/filemgr/src/main/java/org/apache/oodt/cas/filemgr/datatransfer/S3DataTransferer.java
URL: http://svn.apache.org/viewvc/oodt/trunk/filemgr/src/main/java/org/apache/oodt/cas/filemgr/datatransfer/S3DataTransferer.java?rev=1598827&r1=1598826&r2=1598827&view=diff
==============================================================================
--- oodt/trunk/filemgr/src/main/java/org/apache/oodt/cas/filemgr/datatransfer/S3DataTransferer.java (original)
+++ oodt/trunk/filemgr/src/main/java/org/apache/oodt/cas/filemgr/datatransfer/S3DataTransferer.java Sat May 31 06:18:17 2014
@@ -16,6 +16,7 @@
  */
 package org.apache.oodt.cas.filemgr.datatransfer;
 
+import static com.amazonaws.services.s3.model.ObjectMetadata.AES_256_SERVER_SIDE_ENCRYPTION;
 import static com.google.common.base.Preconditions.checkNotNull;
 
 import java.io.File;
@@ -34,6 +35,7 @@ import com.amazonaws.AmazonClientExcepti
 import com.amazonaws.services.s3.AmazonS3;
 import com.amazonaws.services.s3.model.DeleteObjectRequest;
 import com.amazonaws.services.s3.model.GetObjectRequest;
+import com.amazonaws.services.s3.model.ObjectMetadata;
 import com.amazonaws.services.s3.model.PutObjectRequest;
 import com.amazonaws.services.s3.model.S3Object;
 import com.amazonaws.services.s3.model.S3ObjectInputStream;
@@ -47,10 +49,12 @@ public class S3DataTransferer implements
 
 	private final AmazonS3 s3Client;
 	private final String bucketName;
+	private final boolean encrypt;
 
-	public S3DataTransferer(AmazonS3 s3Client, String bucketName) {
+	public S3DataTransferer(AmazonS3 s3Client, String bucketName, boolean encrypt) {
 		this.s3Client = checkNotNull(s3Client);
 		this.bucketName = checkNotNull(bucketName);
+		this.encrypt = encrypt;
 	}
 
 	@Override
@@ -62,7 +66,14 @@ public class S3DataTransferer implements
       String origRef = stripProtocol(ref.getOrigReference(), false);
 		  String dataStoreRef = stripProtocol(ref.getDataStoreReference(), true);
 			try {
-				s3Client.putObject(new PutObjectRequest(bucketName, dataStoreRef, new File(origRef)));
+			  PutObjectRequest request = new PutObjectRequest(
+			      bucketName, dataStoreRef, new File(origRef));
+			  if (encrypt) {
+  				ObjectMetadata requestMetadata = new ObjectMetadata();
+  				requestMetadata.setServerSideEncryption(AES_256_SERVER_SIDE_ENCRYPTION);     
+  				request.setMetadata(requestMetadata);
+			  }
+        s3Client.putObject(request);
 			} catch (AmazonClientException e) {
 				throw new DataTransferException(String.format(
 				    "Failed to upload product reference %s to S3 at %s", origRef,

Modified: oodt/trunk/filemgr/src/main/java/org/apache/oodt/cas/filemgr/datatransfer/S3DataTransfererFactory.java
URL: http://svn.apache.org/viewvc/oodt/trunk/filemgr/src/main/java/org/apache/oodt/cas/filemgr/datatransfer/S3DataTransfererFactory.java?rev=1598827&r1=1598826&r2=1598827&view=diff
==============================================================================
--- oodt/trunk/filemgr/src/main/java/org/apache/oodt/cas/filemgr/datatransfer/S3DataTransfererFactory.java (original)
+++ oodt/trunk/filemgr/src/main/java/org/apache/oodt/cas/filemgr/datatransfer/S3DataTransfererFactory.java Sat May 31 06:18:17 2014
@@ -36,6 +36,8 @@ public class S3DataTransfererFactory imp
 			"org.apache.oodt.cas.filemgr.datatransfer.s3.access.key";
 	private static final String SECRET_KEY_PROPERTY =
 			"org.apache.oodt.cas.filemgr.datatransfer.s3.secret.key";
+  private static final String ENCRYPT_PROPERTY =
+      "org.apache.oodt.cas.filemgr.datatransfer.s3.encrypt";
 
 	@Override
   public S3DataTransferer createDataTransfer() {
@@ -43,10 +45,11 @@ public class S3DataTransfererFactory imp
 		String region = System.getProperty(REGION_PROPERTY);		
 		String accessKey = System.getProperty(ACCESS_KEY_PROPERTY);
     String secretKey = System.getProperty(SECRET_KEY_PROPERTY);
+    boolean encrypt = Boolean.getBoolean(ENCRYPT_PROPERTY);
 
 		AmazonS3Client s3 = new AmazonS3Client(new BasicAWSCredentials(accessKey, secretKey));
     s3.setRegion(Region.getRegion(Regions.valueOf(region)));
 
-    return new S3DataTransferer(s3, bucketName);
+    return new S3DataTransferer(s3, bucketName, encrypt);
   }
 }

Modified: oodt/trunk/filemgr/src/main/resources/filemgr.properties
URL: http://svn.apache.org/viewvc/oodt/trunk/filemgr/src/main/resources/filemgr.properties?rev=1598827&r1=1598826&r2=1598827&view=diff
==============================================================================
--- oodt/trunk/filemgr/src/main/resources/filemgr.properties (original)
+++ oodt/trunk/filemgr/src/main/resources/filemgr.properties Sat May 31 06:18:17 2014
@@ -121,6 +121,7 @@ org.apache.oodt.cas.filemgr.datatransfer
 org.apache.oodt.cas.filemgr.datatransfer.s3.region=EU_WEST_1
 org.apache.oodt.cas.filemgr.datatransfer.s3.access.key=s3_access_key
 org.apache.oodt.cas.filemgr.datatransfer.s3.secret.key=s3_secret_key
+org.apache.oodt.cas.filemgr.datatransfer.s3.encrypt=false
 
 # location of Mime-Type repository
 org.apache.oodt.cas.filemgr.mime.type.repository=/path/to/mime-types.xml

Modified: oodt/trunk/filemgr/src/test/org/apache/oodt/cas/filemgr/datatransfer/TestS3DataTransferer.java
URL: http://svn.apache.org/viewvc/oodt/trunk/filemgr/src/test/org/apache/oodt/cas/filemgr/datatransfer/TestS3DataTransferer.java?rev=1598827&r1=1598826&r2=1598827&view=diff
==============================================================================
--- oodt/trunk/filemgr/src/test/org/apache/oodt/cas/filemgr/datatransfer/TestS3DataTransferer.java (original)
+++ oodt/trunk/filemgr/src/test/org/apache/oodt/cas/filemgr/datatransfer/TestS3DataTransferer.java Sat May 31 06:18:17 2014
@@ -77,7 +77,7 @@ public class TestS3DataTransferer {
 		MockitoAnnotations.initMocks(this);
 
 		stagingDir = tempFolder.getRoot();
-		dataTransferer = new S3DataTransferer(s3Client, S3_BUCKET_NAME);
+		dataTransferer = new S3DataTransferer(s3Client, S3_BUCKET_NAME, true);
 
 		when(reference.getOrigReference()).thenReturn(ORGINAL_REF);
 		when(reference.getDataStoreReference()).thenReturn(DATA_STORE_REF);		

Modified: oodt/trunk/filemgr/src/test/org/apache/oodt/cas/filemgr/datatransfer/TestS3DataTransfererFactory.java
URL: http://svn.apache.org/viewvc/oodt/trunk/filemgr/src/test/org/apache/oodt/cas/filemgr/datatransfer/TestS3DataTransfererFactory.java?rev=1598827&r1=1598826&r2=1598827&view=diff
==============================================================================
--- oodt/trunk/filemgr/src/test/org/apache/oodt/cas/filemgr/datatransfer/TestS3DataTransfererFactory.java (original)
+++ oodt/trunk/filemgr/src/test/org/apache/oodt/cas/filemgr/datatransfer/TestS3DataTransfererFactory.java Sat May 31 06:18:17 2014
@@ -25,6 +25,8 @@ public class TestS3DataTransfererFactory
       "org.apache.oodt.cas.filemgr.datatransfer.s3.access.key";
   private static final String SECRET_KEY_PROPERTY =
       "org.apache.oodt.cas.filemgr.datatransfer.s3.secret.key";
+  private static final String ENCRYPT_PROPERTY =
+      "org.apache.oodt.cas.filemgr.datatransfer.s3.encrypt";
 
   @Test
   public void testCreateDataTransferer() {
@@ -32,6 +34,7 @@ public class TestS3DataTransfererFactory
     System.setProperty(REGION_PROPERTY, "US_WEST_1");
     System.setProperty(ACCESS_KEY_PROPERTY, "23123123123");
     System.setProperty(SECRET_KEY_PROPERTY, "00101010101");
+    System.setProperty(ENCRYPT_PROPERTY, "true");
 
     S3DataTransfererFactory factory = new S3DataTransfererFactory();
     S3DataTransferer transferer = factory.createDataTransfer();