diff --git a/quarkus-automaton/docker/README.md b/quarkus-automaton/docker/README.md index ad84814..a9eb064 100644 --- a/quarkus-automaton/docker/README.md +++ b/quarkus-automaton/docker/README.md @@ -14,4 +14,6 @@ # Docker push image to OCI -- run . +- cd docker +- open .env and increase version number in "IMAGE_TAG=..."-variable +- run ./build.sh diff --git a/quarkus-automaton/src/main/java/de/galabau/dateieingang/pipeline/FileProcessingPipeline.java b/quarkus-automaton/src/main/java/de/galabau/dateieingang/pipeline/FileProcessingPipeline.java index fdfb713..c733097 100644 --- a/quarkus-automaton/src/main/java/de/galabau/dateieingang/pipeline/FileProcessingPipeline.java +++ b/quarkus-automaton/src/main/java/de/galabau/dateieingang/pipeline/FileProcessingPipeline.java @@ -131,11 +131,11 @@ public class FileProcessingPipeline { Log.info("Starte OCI-Upload"); ociUploadService.uploadFiles(context); - // --- SFTP Rename → .processed --- + // --- SFTP Delete --- // Erst nach erfolgreichem Datei-Upload — Marker kommt danach, - // damit Marker-Präsenz in OCI ↔ ZIP bereits .processed auf SFTP. - MDC.put("step", "sftp-rename"); - sftpService.renameFile(zipFilename, zipFilename + ".processed"); + // damit Marker-Präsenz in OCI ↔ ZIP bereits vom SFTP gelöscht ist. + MDC.put("step", "sftp-delete"); + sftpService.deleteFile(zipFilename); // --- OCI Marker --- // Signalisiert der DB-Verarbeitung, dass der Batch vollständig hochgeladen ist. diff --git a/quarkus-automaton/src/main/java/de/galabau/dateieingang/sftp/SftpService.java b/quarkus-automaton/src/main/java/de/galabau/dateieingang/sftp/SftpService.java index 0bafbaf..65ce241 100644 --- a/quarkus-automaton/src/main/java/de/galabau/dateieingang/sftp/SftpService.java +++ b/quarkus-automaton/src/main/java/de/galabau/dateieingang/sftp/SftpService.java @@ -112,10 +112,10 @@ public class SftpService { /** * Benennt eine Datei auf dem Remote-SFTP-Server um. - * Wird nach Erfolg ({@code .processed}) oder Fehler ({@code .error}) aufgerufen. + * Wird nach Fehler ({@code .error}) aufgerufen. * * @param filename aktueller Dateiname, z.B. {@code export_2026-04-08.zip} - * @param newFilename neuer Dateiname, z.B. {@code export_2026-04-08.zip.processed} + * @param newFilename neuer Dateiname, z.B. {@code export_2026-04-08.zip.error} * @throws SftpException bei Verbindungs- oder Umbenennfehler */ public void renameFile(String filename, String newFilename) throws SftpException { @@ -129,4 +129,20 @@ public class SftpService { }); Log.infof("SFTP Rename erfolgreich: '%s'", newFilename); } + + /** + * Löscht eine Datei auf dem Remote-SFTP-Server. + * Wird nach erfolgreichem Verarbeiten aufgerufen. + * + * @param filename Dateiname, z.B. {@code export_2026-04-08.zip} + * @throws SftpException bei Verbindungs- oder Löschfehler + */ + public void deleteFile(String filename) throws SftpException { + Log.infof("SFTP Delete: '%s'", filename); + withSftp(sftp -> { + sftp.rm(config.remotePath() + "/" + filename); + return null; + }); + Log.infof("SFTP Delete erfolgreich: '%s'", filename); + } } diff --git a/quarkus-automaton/src/main/resources/application.properties b/quarkus-automaton/src/main/resources/application.properties index dfabec4..10b5658 100644 --- a/quarkus-automaton/src/main/resources/application.properties +++ b/quarkus-automaton/src/main/resources/application.properties @@ -12,7 +12,7 @@ galabau.sftp.password=${GALABAU_SFTP_PASSWORD:} # Fingerprint auf host: ssh-keyscan | ssh-keygen -lf - galabau.sftp.host-key-fingerprint=${GALABAU_SFTP_HOST_KEY_FINGERPRINT:SHA256:xyz} # Verzeichnis auf dem SFTP-Server, in dem der Lieferant ZIP-Dateien ablegt -galabau.sftp.remote-path=${GALABAU_SFTP_REMOTE_PATH:/bundesagenturfuerarbeit/austausch/test/galaeingang} +galabau.sftp.remote-path=${GALABAU_SFTP_REMOTE_PATH:/bundesagenturfuerarbeit/austausch/dev/galaeingang} # Temporäres lokales Verzeichnis für Download + Entpacken — wird nach jeder ZIP bereinigt galabau.sftp.local-work-dir=/tmp/sftp-work # galabau.sftp.private-key-path=/etc/secrets/sftp-key