我想过滤通过ConsumeIMAP
从gmail中提取的csv电子邮件附件的文件名。我在配置RouteonAttributes
处理器时遇到什么语法上的麻烦。
通过将RouteonAttributes配置为
,我能够从gmail中提取csv文件fetchcsv | ${filename:contains('.csv')}
但是当我尝试指定文件名时
"${filename:contains('Threat_-_SQL_Injection_-_Rule*')}"
它总是路由到不匹配的。文件名是Threat_-_SQL_Injection_-_Rule-2019-06-29
。 "Rule-"
之后的日期也会根据发送日期而不断变化。我还需要为文件"Threat_-_Vulnerability_Scanner_-_Rule-2019-06-28"
编写一个指向属性名称的路由。对配置的任何帮助将不胜感激。
答案 0 :(得分:1)
您可以将startsWith
代替contains
用作-
${filename:startsWith('Threat_-_SQL_Injection_-_Rule')}
这将与任何以“ Threat _-_ SQL_Injection _-_ Rule”字符串开头的文件匹配。这意味着文件上的日期部分可能会有所不同。有关更多详细信息,请参考Apache Nifi Expression Language guide
答案 1 :(得分:0)
一个更简单的解决方案是使用
"${filename:contains('Threat_-_SQL_Injection_-_Rule*')}"
就像您之前所做的一样,但是放下“ *”
"${filename:contains('Threat_-_SQL_Injection_-_Rule')}"