From c72a9d8f666ee58d2e38ed6b16febb618ac0db24 Mon Sep 17 00:00:00 2001 From: CEBergin-Vivid <64930243+CEBergin-Vivid@users.noreply.github.com> Date: Fri, 12 Apr 2024 17:36:08 -0700 Subject: [PATCH] Heic image converter lambda (#108) * Add image converter lambda js file * Update to add delete of original file, some checks for file responses, and comments * add image converter lambda name to main.tf script for the wfdm file index initializer, add a call to the file index initializer to call the image conversion lambda for heic files * Remove commented out code * Change access of fileId from event since the lambda is no longer pulling from a queue * remove delete from file conversion lambda as the file will now be replacing itself as a version update once the API is updated * Adding notifier if image conversion is attempted or aborterd due to file size * Update to ensure file conversion field is only set when conversion is attempted --- .../ProcessSQSMessage.java | 27 ++++++++++--------- 1 file changed, 14 insertions(+), 13 deletions(-) diff --git a/wfdm-file-index-initializer/src/main/java/ca/bc/gov/nrs/wfdm/wfdm_file_index_initializer/ProcessSQSMessage.java b/wfdm-file-index-initializer/src/main/java/ca/bc/gov/nrs/wfdm/wfdm_file_index_initializer/ProcessSQSMessage.java index e520b58..eb52952 100644 --- a/wfdm-file-index-initializer/src/main/java/ca/bc/gov/nrs/wfdm/wfdm_file_index_initializer/ProcessSQSMessage.java +++ b/wfdm-file-index-initializer/src/main/java/ca/bc/gov/nrs/wfdm/wfdm_file_index_initializer/ProcessSQSMessage.java @@ -127,22 +127,23 @@ public SQSBatchResponse handleRequest(SQSEvent sqsEvent, Context context) { fileExtension = ""; } - Integer fileSize; - boolean fileTooLargeToConvert = false; - if (fileDetailsJson.has("fileSize")) { - fileSize = Integer.parseInt(fileDetailsJson.get("fileSize").toString()); - if (fileSize > 10000000) { - fileTooLargeToConvert = true; - GetFileFromWFDMAPI.setImageConversionMetadata(wfdmToken, fileId, versionNumber, - fileDetailsJson, "Image Conversion aborted due to file size"); - } - } + Integer fileSize; + boolean fileTooLargeToConvert = false; + if (fileDetailsJson.has("fileSize")) { + fileSize = Integer.parseInt(fileDetailsJson.get("fileSize").toString()); + if (fileSize > 10000000) { + fileTooLargeToConvert = true; + } + } + boolean isHeicOrHeif = fileExtension.equals("HEIC") || fileExtension.equals("HEIF"); + if (fileTooLargeToConvert && isHeicOrHeif) { + GetFileFromWFDMAPI.setImageConversionMetadata(wfdmToken, fileId, versionNumber, + fileDetailsJson, "Image Conversion aborted due to file size"); + } // if a file has a heic or heif mimetype it needs to be converted by the image // conversion lambda rather than processed - if ((fileExtension.equals("HEIC") || fileExtension.equals("HEIF")) && !fileTooLargeToConvert) { - GetFileFromWFDMAPI.setImageConversionMetadata(wfdmToken, fileId, versionNumber, - fileDetailsJson, "Image Conversion attempted"); + if (isHeicOrHeif && !fileTooLargeToConvert) { logger.log("\nInfo: File with mimeType of " + mimeType + " calling image conversion lambda"); AWSLambda client = AWSLambdaAsyncClient.builder().withRegion(region).build(); InvokeRequest request = new InvokeRequest();