我有Nifi流量,它应该删除S3中超过7天的所有文件。我使用了以下设置来完成它。
我的UpdateAttribute
处理器具有epoch_now
属性,可获取当前的纪元时间。
在我的RouteOnAttribute
上,我有以下逻辑使用此表达式过滤掉7天以下的文件:${epoch_now:minus(${s3.lastModified}):ge(604800000)}
问题是ListS3
处理器将保持状态,并且如果任何文件过期并且需要删除,它将不会在下次计算时重新列出所有文件。我环顾四周,但找不到像Get*
处理器这样不能保持状态的东西。如何修复此流程以使其定期运行并继续删除7天的文件?
答案 0 :(得分:3)
你是对的,NiFi目前没有处理器以这种方式查询S3。
这可能更适合S3 Lifecycle Rule。您可以为特定的密钥前缀配置规则,因此S3将在7天后自动删除对象。从S3控制台:
有一个向导式界面可引导您完成配置。