2017-04-05 40 views
0

我想使用NiFi rest api将流文件传输到输入端口。我正在浏览NiFi rest api文档,发现似乎也有支持实现这一目标。但是,说实话并不是很清楚或详细。如何使用NiFi API在NiFi中传输流文件?

我的工作流程是这样的:

父级视图 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

虽然我可以从输入端口获得端口ID,我不知道TRANSACTIONID是什么,我从哪里可以得到的。

注意:我知道我可以使用NiFi的网络用户界面来做到这一点,但我想知道如何使用NiFi的REST API完成相同操作。

+0

如果它们在相同的NiFi,可以直接在一个过程组连接的输出端口到输入端口上的另一过程组(在父视图连接PG框)。你需要使用API​​吗? – James

+0

我知道我们可以使用NiFi网络用户界面来做到这一点。我想用NiFi API完成同样的工作。 –

回答

3

您需要使用这些端点来创建事务。这里是NiFi使用Site-To-Site客户端库与这些端点[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

+0

这是有道理的,但你可以更具体一点?我将坚持使用REST API端点,所以请告诉我如何首先创建事务。我是指应使用Data Transfer API中的哪个端点? –