Apache nifi 如何在nifi连接中从队列中获取流文件列表?
当流被NiFi REST API阻塞时,我想从连接中的队列中获取每个流文件 我发现Apache nifi 如何在nifi连接中从队列中获取流文件列表?,apache-nifi,Apache Nifi,当流被NiFi REST API阻塞时,我想从连接中的队列中获取每个流文件 我发现/nifi api/flowfile queues/{id}/listing requests的功能可以满足我的需要。它响应ListingRequestDTO: 名为flowFileSummaries的字段可以返回一个flowFile数组。然后我可以从flowFile中获取每个uuid: { "uri": "value", "uuid": "value", "filename": "value", "positi
/nifi api/flowfile queues/{id}/listing requests
的功能可以满足我的需要。它响应ListingRequestDTO:
名为flowFileSummaries的字段可以返回一个flowFile数组。然后我可以从flowFile中获取每个uuid:
{
"uri": "value",
"uuid": "value",
"filename": "value",
"position": 0,
"size": 0,
"queuedDuration": 0,
"lineageDuration": 0,
"clusterNodeId": "value",
"clusterNodeAddress": "value",
"penalized": true
}
但是,当我使用API时,找不到“FlowFileSummary”
}
那么,有没有可能实现的解决方案?还是其他解决方案?谢谢 我认为在列表请求完成之前,流文件摘要不可用。在上面的示例响应中,请注意
finished
为false。您可以继续查询该列表请求的API,直到finished
为true,然后总结应该可用。然后您可以使用/flowfile queues/{id}/flowfiles/{flowfile uuid}
和/flowfile queues/{id}/flowfiles/{flowfile uuid}/content
端点来获取每个流文件的属性和内容。您不需要有列表请求来完成。以下是我成功获取流文件内容的步骤
注意:如果有多个流文件,您将在步骤3 curl命令的响应中看到多个URI非常感谢。我看到了你的许多答案,从中我学到了很多。我仍然不知道如何使
完成
变成正确
。但我解决了这个问题。我发现listingRequest
的uri
字段是/flowfile queues/{id}/listing requests/{listing request id}
,我可以使用此uri从get获取摘要。因此,我想问两个问题:1。如何使登录请求完成?2.什么是登录请求id?再次感谢
{
"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
}