首页 > 解决方案 > 将目录作为参数传递给 ExecuteStreamCommand

问题描述

我有一个 Java 程序,旨在处理一个充满数据的目录,作为参数传递给 JAR。

input_dir/
  file1
  file2

如何告诉 NiFi 将目录作为参数而不是单个 FlowFile 传递给 ExecuteStreamCommand?

有没有办法将目录建模为 FlowFile ?

我试图在父目录上的 ExecuteStreamCommand 之前使用 GetFileinput_dir以获得“输入目录”,因此它将被传递给流命令。

它不起作用,因为当“递归子目录”属性设置为 true 时,GetFile 只会爬取所有目录以查找实际文件。

当设置为 false 时,GetFile 不会获取任何文件。

总而言之,我想找到一种方法将包含数据的目录传递给 ExecuteStreamCommand,而不仅仅是单个 FlowFile。

希望有道理,谢谢你的建议。

标签: apache-nifi

解决方案


流文件不一定是来自磁盘的文件,它可以是任何东西。如果我对您的理解正确,您只需要一个流文件来触发您的 ExecuteStreamCommand。您应该能够使用 GenerateFlowFile 执行此操作(适当地设置调度策略)。您可以将目录直接放入 ExecuteStreamCommand 中,或者如果您希望它更具动态性,可以将其作为流文件属性添加到 GenerateFlowFile 中,然后在 ExecuteStreamCommand 中引用它,如 ${my.dir}(假设您将其命名为 my.dir在生成流文件中)。


推荐阅读