我有一个python脚本,它接受命令行参数来解密文件.要执行的python命令如下所示:
python decrypt.py -f "file_to_decrypt.enc" -k "private_key_file.txt"
我正在尝试使用GetFile处理器来挑选这些文件,NiFi因为我可以在日志中看到文件名.
另一方面,我有一个ExecuteProcess进程设置来运行如上所述的python脚本.但是,我需要将文件名传递ExecuteProcess给Python脚本才能工作.所以我的问题是,我怎么管这些文件从GetFile过程到ExecuteProcess process的Apache NiFi?
您可以使用ExecuteStreamCommand处理器代替ExecuteProcess.该处理器接受传入的flowfile并且可以访问属性和内容,而ExecuteProcess是一个源处理器,并且不接受传入flowfiles.
我不知道你是否需要GetFile(获取文件的内容); 试着ListFile和RouteOnAttribute你想要的两个文件名进行筛选.将两个成功的列表合并到一个流文件中MergeContent,然后使用${filename}属性和表达式语言用和填充命令参数.x.ency.txt
更新
ListFile,UpdateAttribute,RouteOnAttribute,MergeContent,和ExecuteStreamCommand执行的命令行Python解密(由嘲笑echo)注意,这使用了一种表达语言功能,该功能ifElse()目前在NiFi中,master但尚未发布.它是1.2.0版本的一部分,但如果你构建master,你现在可以使用它.
我仍然认为EncryptContent或特别ExecuteScript是更紧凑,但这是有效的.
| 归档时间: |
|
| 查看次数: |
1964 次 |
| 最近记录: |