Ich habe Nifi Flow, der alle Dateien aus S3 löschen soll, die älter als 7 Tage sind. Ich habe das folgende Setup verwendet, um es zu erledigen.Nifi: Löschen von Dateien aus S3, wenn sie X Tage alt sind
Mein UpdateAttribute
Prozessor verfügt über ein epoch_now
Attribut, das aktuelle Epochzeit erhält.
Auf meinem RouteOnAttribute
Ich habe die folgende Logik Dateien zu filtern, die jünger als 7 Tage mit diesem Ausdruck: ${epoch_now:minus(${s3.lastModified}):ge(604800000)}
Das Problem ist, dass ListS3
Prozessorzustand aufrechterhalten wird, und es wird nicht wieder Liste all Dateien das nächste Mal, um zu berechnen, ob irgendwelche Dateien ablaufen und gelöscht werden müssen. Ich schaute mich um, aber ich konnte etwas wie Get*
Prozessor nicht finden, der Zustand beibehalten würde. Wie behebe ich diesen Fluss, so dass er regelmäßig ausgeführt wird und Dateien, die 7 Tage alt sind, weiterhin löscht?
Ich landete tatsächlich eine lokale Kopie der Dateien und verwendet 'GetFile' Prozessor, um immer zu beobachten, dass lokale dir und wenn eine Datei mehr als 7 Tage alt ist, löschen Sie sie aus lokalen, route die' $ {filename} ' zu 'DeleteS3Object' und lösche auch von S3. – summerNight