Created
February 1, 2018 19:22
-
-
Save molsches/2f64e2c46289f0ad682a41dd2a63918d to your computer and use it in GitHub Desktop.
S3 writer
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
//This is a javascript writer segment | |
// File to send | |
var file = new Packages.java.io.File.createTempFile("s3-hl7", ".json"); | |
var bw = new Packages.java.io.BufferedWriter(new Packages.java.io.FileWriter(file)); | |
//'object' is just whatever you have in the channelMap that you want to push to S3. Might be just the raw message or the transformed message. | |
bw.write($('object')); | |
bw.close(); | |
// Set the Key Name | |
var json = JSON.parse($('object')); | |
//We transform most of our HL7 messages to JSON. This is just pulling data out of it to organize it by message type. | |
var messageType = json.content.MSH.messageType; | |
var messageEvent = json.content.MSH.messageEvent; | |
var datetime = new String(DateUtil.getCurrentDate("yyyyMMddHHmmss.SSS")); | |
var fileName = messageType +"^"+ messageEvent + "_" + datetime +".json"; | |
var keyName = "BulkQueue/"+ messageType +"/"+ messageEvent + "/" + fileName; | |
// Set up the Request | |
var bucketName = "YourBucketName"; | |
var profCredentials = new Packages.com.amazonaws.auth.EnvironmentVariableCredentialsProvider(); | |
var s3client = new Packages.com.amazonaws.services.s3.AmazonS3Client(profCredentials); | |
var putRequest = new Packages.com.amazonaws.services.s3.model.PutObjectRequest(bucketName, keyName, file); | |
// Server-Side Encryption | |
var objectMetadata = new Packages.com.amazonaws.services.s3.model.ObjectMetadata(); | |
objectMetadata.setSSEAlgorithm(Packages.com.amazonaws.services.s3.model.ObjectMetadata.AES_256_SERVER_SIDE_ENCRYPTION); | |
putRequest.setMetadata(objectMetadata); | |
// Send Request | |
s3client.putObject(putRequest); | |
file.delete(); | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment