Dateien älter 30 Tage auf FTP-Server löschen

Hallo @synestysupport ,

ich würde gerne alle Dateien älter 30 Tagen aus einem FTP-Ordner löschen.

Leider kann ich beim Step FileFilter aber nicht auf das Dateidatum filtern, sondern nur auf die Größe.
Zumindest steht es so in der Doku.

Daher habe ich einen alternativen Weg versucht:

  1. FTP Download
  2. Mapper
  3. Filter auf den Mapper um die Zeilen neuer als 30 Tagen herauszufiltern
  4. FTPRemove

Leider erwartet der FTPRemove-Step aber eine Filelist. Daher funktioniert mein Filter nicht.

Habt ihr noch eine Idee, wie ich die Anforderung umsetzen könnte?
Ideal wäre es natürlich über den FileFilter :wink:

Viele Grüße
Thorsten

Hallo Thorsten,

du kannst einen TextHTMLWriterMultiOutput Step verwenden, um die Dateienamen aus dem gefilterten Spreadsheet als STRINGLIST auszugeben:

<#list output@SpreadsheetFilter_XX.getRows() as row>
  <#list row.getCols().filter("FileName") as filename>
    ${output(filename)}
  </#list>
</#list>

Den Output des TextHTMLWriterMultiOutput Steps kannst du dann im FTPRemove als inputFiles verweden (der input ist kompatibel mit FILELIST und STRINGLIST)

Viele Grüße
Torsten

Hallo @synesty-Torsten ,

super! Vielen Dank für deine Antwort.
Ich musste noch eine kleine Korrektur vornehmen, aber jetzt passt es :slight_smile:

Der TextHTMLWriterMultiOutput Step erwartet als ersten Parameter noch den Input. Den habe ich einfach auf einen leeren String gesetzt:

<#list output@SpreadsheetFilter_5.getRows() as row>
  <#list row.getCols().filter("FileName") as filename>
    ${output("",filename)}
  </#list>
</#list>

Viele Grüße
Thorsten