diff --git a/redaction-service-v1/redaction-service-server-v1/build.gradle.kts b/redaction-service-v1/redaction-service-server-v1/build.gradle.kts index f3037801..1761505c 100644 --- a/redaction-service-v1/redaction-service-server-v1/build.gradle.kts +++ b/redaction-service-v1/redaction-service-server-v1/build.gradle.kts @@ -12,7 +12,7 @@ plugins { description = "redaction-service-server-v1" -val layoutParserVersion = "0.23.0" +val layoutParserVersion = "0.25.0" val jacksonVersion = "2.15.2" val droolsVersion = "8.42.0.Final" val pdfBoxVersion = "3.0.0-alpha2" @@ -33,7 +33,7 @@ dependencies { implementation("com.iqser.red.commons:metric-commons:2.3.0") implementation("com.iqser.red.commons:dictionary-merge-commons:1.5.0") - implementation("com.iqser.red.commons:storage-commons:2.25.0") + implementation("com.iqser.red.commons:storage-commons:2.27.0") implementation("com.knecon.fforesight:tenant-commons:0.10.0") implementation("com.fasterxml.jackson.module:jackson-module-afterburner:${jacksonVersion}") diff --git a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/storage/RedactionStorageService.java b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/storage/RedactionStorageService.java index 2e9c6c18..c4159844 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/storage/RedactionStorageService.java +++ b/redaction-service-v1/redaction-service-server-v1/src/main/java/com/iqser/red/service/redaction/v1/server/storage/RedactionStorageService.java @@ -1,5 +1,7 @@ package com.iqser.red.service.redaction.v1.server.storage; +import java.io.File; +import java.io.FileInputStream; import java.io.InputStream; import org.springframework.stereotype.Service; @@ -36,7 +38,10 @@ public class RedactionStorageService { @SneakyThrows public InputStream getStoredObject(String storageId) { - return storageService.getObject(TenantContext.getTenantId(), storageId).getInputStream(); + File tempFile = File.createTempFile("temp", "data"); + tempFile.deleteOnExit(); + storageService.downloadTo(TenantContext.getTenantId(), storageId, tempFile); + return new FileInputStream(tempFile); } diff --git a/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/FileSystemBackedStorageService.java b/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/FileSystemBackedStorageService.java index 53b305f9..f5ee0a14 100644 --- a/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/FileSystemBackedStorageService.java +++ b/redaction-service-v1/redaction-service-server-v1/src/test/java/com/iqser/red/service/redaction/v1/server/FileSystemBackedStorageService.java @@ -2,6 +2,7 @@ package com.iqser.red.service.redaction.v1.server; import static java.io.File.createTempFile; +import java.io.BufferedInputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; @@ -11,9 +12,9 @@ import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.stream.Collectors; +import java.util.zip.GZIPInputStream; import org.apache.commons.io.IOUtils; -import org.springframework.core.io.InputStreamResource; import com.fasterxml.jackson.databind.ObjectMapper; import com.iqser.red.commons.jackson.ObjectMapperFactory; @@ -34,14 +35,14 @@ public class FileSystemBackedStorageService implements StorageService { @SneakyThrows @Override - public InputStreamResource getObject(String tenantId, String objectId) { + public void downloadTo(String tenantId, String objectId, File destinationFile) { var res = dataMap.get(objectId); if (res == null) { throw new StorageObjectDoesNotExist(new RuntimeException()); } - return new InputStreamResource(new FileInputStream(res)); + IOUtils.copy(new FileInputStream(res), new FileOutputStream(destinationFile)); }