将内容和属性从 2 个不同的处理器传递到 InvokeHttp 处理器
Pass Content and Attributes from 2 different Processors to InvokeHttp Processor
这是我正在尝试做的事情
- 获取文件并将其编码为 base 64
- 登录 API 并为后续 API 调用获取 OAUTH 令牌(因为 Invoke HTTP 不使用 body 所以我必须使用 GenerateFlow 处理器传递 body在那之前)
步骤 1 和步骤 2 可以互换
- 现在我需要来自登录调用的令牌作为 Header 值和 Base64 编码文件作为 body 到下一个调用处理器。
问题是我无法连接流程 1 和流程 2,因此我可以将它们带到步骤 3,在该步骤中我需要使用流程 2 中的数据调用另一个 API。GetFile 和 GenerateFlow 都是源处理器。
这就是我的想法,以某种方式将内容转换为属性。由于文件是用 base64 编码的,有没有办法将该内容转换为属性?我正在尝试,但内容只是随机文本,我不确定要查找的参数或我需要将其放入的内容。有没有办法说将内容中的任何内容转换为属性说 filecontent="all the flow-content"
nifi-flow-snapshot
Base 64 encoded content
- 首先从同一个 generateflowfie 触发两个流 >> updateattribute(创建要在合并关联中使用的公共属性)。
- 做你的工作
- 使用 MergeContent - 保留所有唯一属性 - 使用第一步中设置的公共属性设置相关性。
这就是我目前解决问题的方式。可能还有其他更好的方法,但这个方法有效。
以
开始流程
GetFile>>Base64Encode>>ExtractText>>ReplaceText>>Login>>continue
其余流程
有效的技巧是放置 ReplaceText
以便它可以抓取整个 base64 编码的内容并将其放置在属性中。然后 ReplaceText
将用登录处理器的主体替换整个内容。
现在我有登录令牌和 base 64 编码文件,我可以将其发送到我的下一个处理器。
谢谢
这是我正在尝试做的事情
- 获取文件并将其编码为 base 64
- 登录 API 并为后续 API 调用获取 OAUTH 令牌(因为 Invoke HTTP 不使用 body 所以我必须使用 GenerateFlow 处理器传递 body在那之前)
步骤 1 和步骤 2 可以互换
- 现在我需要来自登录调用的令牌作为 Header 值和 Base64 编码文件作为 body 到下一个调用处理器。
问题是我无法连接流程 1 和流程 2,因此我可以将它们带到步骤 3,在该步骤中我需要使用流程 2 中的数据调用另一个 API。GetFile 和 GenerateFlow 都是源处理器。
这就是我的想法,以某种方式将内容转换为属性。由于文件是用 base64 编码的,有没有办法将该内容转换为属性?我正在尝试,但内容只是随机文本,我不确定要查找的参数或我需要将其放入的内容。有没有办法说将内容中的任何内容转换为属性说 filecontent="all the flow-content"
nifi-flow-snapshot
Base 64 encoded content
- 首先从同一个 generateflowfie 触发两个流 >> updateattribute(创建要在合并关联中使用的公共属性)。
- 做你的工作
- 使用 MergeContent - 保留所有唯一属性 - 使用第一步中设置的公共属性设置相关性。
这就是我目前解决问题的方式。可能还有其他更好的方法,但这个方法有效。 以
开始流程GetFile>>Base64Encode>>ExtractText>>ReplaceText>>Login>>continue
其余流程
有效的技巧是放置 ReplaceText
以便它可以抓取整个 base64 编码的内容并将其放置在属性中。然后 ReplaceText
将用登录处理器的主体替换整个内容。
现在我有登录令牌和 base 64 编码文件,我可以将其发送到我的下一个处理器。
谢谢