S3から7日以上経過したファイルを削除するはずのNifiフローがあります。私はそれを行うために、次のセットアップを使用しました。Nifi:X日前にS3からファイルを削除する
私のUpdateAttribute
プロセッサには、現在のエポック時間を取得するepoch_now
属性があります。私RouteOnAttribute
で
私はこの表現を使用して7日より年下のファイルを除外するために、次のロジックを持っている:${epoch_now:minus(${s3.lastModified}):ge(604800000)}
問題はListS3
プロセッサが状態を維持し、それがすべてリストし直すないということですファイルが期限切れであり、削除する必要があるかどうかを計算する次回のファイル。私は周りを見回しましたが、状態を維持しないGet*
プロセッサーなどは見つかりませんでした。このフローを定期的に実行し、7日後のファイルを削除し続けるようにこのフローを修正するにはどうすればよいですか?
私は実際にファイルのローカルコピーを残してしまい、 'GetFile'プロセッサを使ってそのローカルディレクトリを常に監視し、7日以上経過したファイルがローカルから削除した場合は、' $ {filename} ' 'DeleteS3Object'に移動し、S3からも削除します。 – summerNight