【问题标题】:Nifi: Delete files from S3 when they are X days oldNifi:从 S3 删除 X 天前的文件
【发布时间】:2017-03-08 18:38:52
【问题描述】:

我有 Nifi 流程,它应该从 S3 中删除任何超过 7 天的文件。我已经使用以下设置来完成它。

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

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

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

【问题讨论】:

    标签: amazon-s3 apache-nifi


    【解决方案1】:

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

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

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

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

    【讨论】:

    • 我实际上最终保留了文件的本地副本并使用GetFile 处理器始终监视该本地目录,如果任何文件超过 7 天,从本地删除它们,路由 @ 987654323@ 到 DeleteS3Object 并从 S3 中删除。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-28
    • 1970-01-01
    • 2020-10-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多