如何使用NiFi API在NiFi中传输流文件?

时间:2017-04-05 10:26:01

标签: rest apache-nifi

我想使用NiFi rest api将流文件传输到输入端口。我正在浏览NiFi rest api docs,发现似乎有同样的支持。但是,说实话并不是很清楚或详细。

我的工作流程如下:

家长级别视图 enter image description here

内部源处理器组: enter image description here

目标内处理器组: enter image description here

我想知道的是如何将从源处理器组排队的流文件传输到目标处理器组的输入端口,以便可以使用PutFile进行存储。

我想尝试点击此终结点: http://localhost:8080/nifi-api/data-transfer/input-ports/{portId}/transactions/{transactionId}/flow-files

虽然我可以从输入端口获取portId,但我不知道transactionID是什么以及从哪里可以得到它。

注意:我知道我可以使用NiFi的网络用户界面进行此操作,但我想知道如何使用NiFi的REST API完成相同操作。

1 个答案:

答案 0 :(得分:3)

您需要使用这些端点来创建事务。这是链接到源中的一个点,其中NiFi使用站点到站点客户端库与这些端点[1]进行通信。发送流文件并不是一个简单的调用,因为您需要创建事务,发送内容,确认事务,然后完成它。

[1] https://github.com/apache/nifi/blob/master/nifi-nar-bundles/nifi-site-to-site-reporting-bundle/nifi-site-to-site-reporting-task/src/main/java/org/apache/nifi/reporting/SiteToSiteProvenanceReportingTask.java#L206