以下是我尝试做的
- 获取一个文件并将其编码为基数64
- 登录API并获取后续API调用的OAUTH令牌(由于InvokeHTTP不接受主体,因此在此之前我必须使用GenerateFlow处理器传递主体(
步骤1和2都可以互换
- 现在我需要登录调用中的令牌作为Header值,Base64编码的文件作为下一个Invoke Processor的主体
问题是我无法连接流1和2,因此我可以将它们带到步骤3,在步骤3中,我需要使用来自2的数据调用另一个API。GetFile和GenerateFlow都是源处理器。
以下是我的想法,以某种方式将内容转换为属性。由于文件是用base64编码的,有没有办法将内容转换为属性?我正在尝试,但内容只是随机文本,我不确定要查找什么参数或需要将其放入什么中。有没有办法将内容中的内容转换为属性,比如filecontent="所有流内容";
nifi流量快照
基本64编码内容
- 首先触发同一代流的两个流>gt;updateattribute(创建要在合并相关性中使用的公共属性(
- 做好你的工作
- 使用MergeContent-保留所有唯一属性-使用第一步中设置的公共属性设置correlaon
这就是我目前解决问题的方法。也许还有其他更好的方法,但这一方法奏效了。使用启动流程
GetFile>gt;Base64编码>gt;ExtractText>gt;替换文本>gt;登录>gt;继续
与流的其余部分
工作的诀窍是放置ReplaceText
,这样它就可以获取整个base64编码的内容,并将其放置在一个属性中。则CCD_ 2将用登录处理器的主体替换整个内容。现在我有了登录令牌和base64编码的文件,我可以将它们发送到下一个处理器。
感谢