Repository: camel
Updated Branches:
  refs/heads/master f9429f632 -> 88338627a


CAMEL-5857: Add server side enrycption algorithm option to s3 producer. Thanks 
to Scott LePage for the patch.


Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/88338627
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/88338627
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/88338627

Branch: refs/heads/master
Commit: 88338627aaddb38369ad54a667deb10fdf6bc71d
Parents: f9429f6
Author: Claus Ibsen <davscl...@apache.org>
Authored: Sat Jul 11 15:38:13 2015 +0200
Committer: Claus Ibsen <davscl...@apache.org>
Committed: Sat Jul 11 15:38:13 2015 +0200

----------------------------------------------------------------------
 .../camel/component/aws/s3/S3Configuration.java       | 14 ++++++++++++++
 .../apache/camel/component/aws/s3/S3Constants.java    |  1 +
 .../org/apache/camel/component/aws/s3/S3Endpoint.java |  1 +
 .../org/apache/camel/component/aws/s3/S3Producer.java |  5 +++++
 4 files changed, 21 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/88338627/components/camel-aws/src/main/java/org/apache/camel/component/aws/s3/S3Configuration.java
----------------------------------------------------------------------
diff --git 
a/components/camel-aws/src/main/java/org/apache/camel/component/aws/s3/S3Configuration.java
 
b/components/camel-aws/src/main/java/org/apache/camel/component/aws/s3/S3Configuration.java
index 5a6af23..5bc2ac0 100644
--- 
a/components/camel-aws/src/main/java/org/apache/camel/component/aws/s3/S3Configuration.java
+++ 
b/components/camel-aws/src/main/java/org/apache/camel/component/aws/s3/S3Configuration.java
@@ -53,6 +53,8 @@ public class S3Configuration implements Cloneable {
     private String policy;
     @UriParam(label = "producer")
     private String storageClass;
+    @UriParam(label = "producer")
+    private String serverSideEncryption;
 
     public long getPartSize() {
         return partSize;
@@ -207,4 +209,16 @@ public class S3Configuration implements Cloneable {
     public void setStorageClass(String storageClass) {
         this.storageClass = storageClass;
     }
+
+    public String getServerSideEncryption() {
+        return serverSideEncryption;
+    }
+
+    /**
+     * Sets the server-side encryption algorithm when encrypting the object 
using AWS-managed keys.
+     * For example use <tt>AES256</tt>.
+     */
+    public void setServerSideEncryption(String serverSideEncryption) {
+        this.serverSideEncryption = serverSideEncryption;
+    }
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/88338627/components/camel-aws/src/main/java/org/apache/camel/component/aws/s3/S3Constants.java
----------------------------------------------------------------------
diff --git 
a/components/camel-aws/src/main/java/org/apache/camel/component/aws/s3/S3Constants.java
 
b/components/camel-aws/src/main/java/org/apache/camel/component/aws/s3/S3Constants.java
index f007313..8bd783f 100644
--- 
a/components/camel-aws/src/main/java/org/apache/camel/component/aws/s3/S3Constants.java
+++ 
b/components/camel-aws/src/main/java/org/apache/camel/component/aws/s3/S3Constants.java
@@ -38,4 +38,5 @@ public interface S3Constants {
     String ACL                 = "CamelAwsS3Acl";
     String USER_METADATA       = "CamelAwsS3UserMetadata";
     String S3_HEADERS          = "CamelAwsS3Headers";
+    String SERVER_SIDE_ENCRYPTION = "CamelAwsS3ServerSideEncryption";
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/88338627/components/camel-aws/src/main/java/org/apache/camel/component/aws/s3/S3Endpoint.java
----------------------------------------------------------------------
diff --git 
a/components/camel-aws/src/main/java/org/apache/camel/component/aws/s3/S3Endpoint.java
 
b/components/camel-aws/src/main/java/org/apache/camel/component/aws/s3/S3Endpoint.java
index 69a7942..f772ee4 100644
--- 
a/components/camel-aws/src/main/java/org/apache/camel/component/aws/s3/S3Endpoint.java
+++ 
b/components/camel-aws/src/main/java/org/apache/camel/component/aws/s3/S3Endpoint.java
@@ -163,6 +163,7 @@ public class S3Endpoint extends ScheduledPollEndpoint {
         message.setHeader(S3Constants.CONTENT_DISPOSITION, 
objectMetadata.getContentDisposition());
         message.setHeader(S3Constants.CACHE_CONTROL, 
objectMetadata.getCacheControl());
         message.setHeader(S3Constants.S3_HEADERS, 
objectMetadata.getRawMetadata());
+        message.setHeader(S3Constants.SERVER_SIDE_ENCRYPTION, 
objectMetadata.getSSEAlgorithm());
 
         return exchange;
     }

http://git-wip-us.apache.org/repos/asf/camel/blob/88338627/components/camel-aws/src/main/java/org/apache/camel/component/aws/s3/S3Producer.java
----------------------------------------------------------------------
diff --git 
a/components/camel-aws/src/main/java/org/apache/camel/component/aws/s3/S3Producer.java
 
b/components/camel-aws/src/main/java/org/apache/camel/component/aws/s3/S3Producer.java
index 20125fd..8097525 100644
--- 
a/components/camel-aws/src/main/java/org/apache/camel/component/aws/s3/S3Producer.java
+++ 
b/components/camel-aws/src/main/java/org/apache/camel/component/aws/s3/S3Producer.java
@@ -272,6 +272,11 @@ public class S3Producer extends DefaultProducer {
             }
         }
 
+        String encryption = 
exchange.getIn().getHeader(S3Constants.SERVER_SIDE_ENCRYPTION, 
getConfiguration().getServerSideEncryption(), String.class);
+        if (encryption != null) {
+            objectMetadata.setSSEAlgorithm(encryption);
+        }
+
         return objectMetadata;
     }
 

Reply via email to