From 3544ad47afaeecf90d9ccd9b7f07ef09432d1be6 Mon Sep 17 00:00:00 2001 From: Robert Sehr Date: Mon, 26 Aug 2024 11:04:39 +0200 Subject: [PATCH] export: create tmp file, copy tmp file to destination, remove tmp file --- .../plugins/ArchiveManagementAdministrationPlugin.java | 9 ++++++--- .../src/main/java/io/goobi/api/job/ExportEadFileJob.java | 7 +++++-- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/module-base/src/main/java/de/intranda/goobi/plugins/ArchiveManagementAdministrationPlugin.java b/module-base/src/main/java/de/intranda/goobi/plugins/ArchiveManagementAdministrationPlugin.java index 2c161d4..bb4b8c5 100644 --- a/module-base/src/main/java/de/intranda/goobi/plugins/ArchiveManagementAdministrationPlugin.java +++ b/module-base/src/main/java/de/intranda/goobi/plugins/ArchiveManagementAdministrationPlugin.java @@ -3095,10 +3095,13 @@ public void eadExport() { log.error(e); } } - - Path downloadFile = Paths.get(exportFolder, databaseName.replace(" ", "_")); try { - outputter.output(document, Files.newOutputStream(downloadFile)); + // export into temporary file, copy temp file to destination, remove temp file + Path downloadFile = Paths.get(exportFolder, databaseName.replace(" ", "_")); + Path tempFile = StorageProvider.getInstance().createTemporaryFile(databaseName.replace(" ", "_"), "xml"); + outputter.output(document, Files.newOutputStream(tempFile)); + StorageProvider.getInstance().copyFile(tempFile, downloadFile); + StorageProvider.getInstance().deleteFile(tempFile); } catch (IOException e) { log.error(e); } diff --git a/module-job/src/main/java/io/goobi/api/job/ExportEadFileJob.java b/module-job/src/main/java/io/goobi/api/job/ExportEadFileJob.java index 13f5069..f69bb63 100644 --- a/module-job/src/main/java/io/goobi/api/job/ExportEadFileJob.java +++ b/module-job/src/main/java/io/goobi/api/job/ExportEadFileJob.java @@ -75,9 +75,12 @@ public void execute() { } } - Path downloadFile = Paths.get(exportFolder, file.replace(" ", "_")); try { - outputter.output(document, Files.newOutputStream(downloadFile)); + Path downloadFile = Paths.get(exportFolder, file.replace(" ", "_")); + Path tempFile = StorageProvider.getInstance().createTemporaryFile(file.replace(" ", "_"), "xml"); + outputter.output(document, Files.newOutputStream(tempFile)); + StorageProvider.getInstance().copyFile(tempFile, downloadFile); + StorageProvider.getInstance().deleteFile(tempFile); } catch (IOException e) { log.error(e); }