当使用NiFi REST API阻止流时,我想从连接的队列中获取每个流文件。
我发现/nifi-api/flowfile-queues/{id}/listing-requests
的功能可以满足我的需求。它会响应一个ListingRequestDTO:
enter image description here
名为flowFileSummaries的字段可以返回一个flowFile数组。然后我可以从flowfiles中获取每个uuid:
{
"uri": "value",
"uuid": "value",
"filename": "value",
"position": 0,
"size": 0,
"queuedDuration": 0,
"lineageDuration": 0,
"clusterNodeId": "value",
"clusterNodeAddress": "value",
"penalized": true
}
但是,当我使用API却找不到“ FlowFileSummary”
{
"listingRequest": {
"id": "0165122a-e1ac-134e-2c09-92ba9ca93e8b",
"uri": "http://.../nifi-api/flowfile-queues/07a23828-d6f3-1e00-27af-f0428a493507/listing-requests/0165122a-e1ac-134e-2c09-92ba9ca93e8b",
"submissionTime": "09/07/2018 18:46:57.496 CST",
"lastUpdated": "18:46:57 CST",
"percentCompleted": 0,
"finished": false,
"maxResults": 100,
"state": "Waiting for other queue requests to complete",
"queueSize": {
"byteCount": 370689,
"objectCount": 995
},
"sourceRunning": false,
"destinationRunning": false
}
}
那么,有没有可能实现的解决方案?或其他解决方案?谢谢!
答案 0 :(得分:3)
在列表请求完成之前,我不相信流文件摘要是可用的。在上面的示例响应中,请注意MiniCssExtractPlugin
为假。您可以继续查询该列表请求的API,直到finished
为真为止,然后摘要就可用了。然后,您可以使用finished
和/flowfile-queues/{id}/flowfiles/{flowfile-uuid}
端点来获取每个流文件的属性和内容。
答案 1 :(得分:0)
您不需要完成列表请求。这是我成功用于获取流文件内容的步骤
注意:如果有多个流文件,则在步骤3 curl命令的响应中将看到多个URI