将目录作为参数传递给ExecuteStreamCommand

时间:2019-01-22 16:05:26

标签: apache-nifi

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

input_dir/
  file1
  file2

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

是否可以将目录建模为FlowFile?

我试图在父目录input_dir的ExecuteStreamCommand之前使用GetFile来获取ìnput_dir`,因此它将被传递给流命令。

这没有用,因为当“递归子目录”属性设置为true时,GetFile会爬网所有目录以查找实际文件。

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

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

希望如此,谢谢您的建议。

1 个答案:

答案 0 :(得分:1)

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