Upload to AWS S3 with encryption


I'm interested in the possibility of using AWS server-side or client-client side encryption for files that I'm wishing to load to S3. At minimum, for server-side encryption, this requires the ability to pass a 'x-amz-server-side-encryption' header with each S3 PUT request.

Keen to know whether there is there any way to do this in KNIME, using either the 'Upload' node or a Java Snippet?

Hi Andrew,

That's not currently possible with the S3 nodes (I've opened a feature request).

However, it would be possible to implement with the Java Snippet node by importing the AWS Java API and implementing the functionality there.



Thanks Jon,

I suspected this was probably the best approach, though wasn't sure whether the Java Snippet would support import of the full Java API. Thanks also for opening a feature request on this one. Meanwhile we'll see if we can get something working with the snippet approach.


Hi Jon,


Do you maybe have an example of the code to get it to work? I've even tried to get it to work in Eclipse but with no luck so far.

1 Like

Just merged the fix to the master branch. You can try it with the next nightly build or wait until it is officially released as part of 3.6.

1 Like

Thanks for this.

I can see in the S3 Connection node in 3.6.1 that Server Side Encryption can be activated or deactivated within the node, however I’m not seeing any mention of support for Client Side Encryption. Wondering whether support for this remains in the development pipeline?