Nifi:在X天前从S3中删除文件

时间:2017-03-08 18:38:52

标签: amazon-s3 apache-nifi

我有Nifi流量,它应该删除S3中超过7天的所有文件。我使用了以下设置来完成它。

我的UpdateAttribute处理器具有epoch_now属性,可获取当前的纪元时间。

在我的RouteOnAttribute上,我有以下逻辑使用此表达式过滤掉7天以下的文件:${epoch_now:minus(${s3.lastModified}):ge(604800000)}

问题是ListS3处理器将保持状态,并且如果任何文件过期并且需要删除,它将不会在下次计算时重新列出所有文件。我环顾四周,但找不到像Get*处理器这样不能保持状态的东西。如何修复此流程以使其定期运行并继续删除7天的文件?

enter image description here

1 个答案:

答案 0 :(得分:3)

你是对的,NiFi目前没有处理器以这种方式查询S3。

这可能更适合S3 Lifecycle Rule。您可以为特定的密钥前缀配置规则,因此S3将在7天后自动删除对象。从S3控制台:

  • 选择您的水桶
  • 选择属性
  • 展开生命周期部分
  • 点击添加规则

有一个向导式界面可引导您完成配置。