Я хочу получить потоковые файлы с таким фильтром session.get(fileSize>1)
, но этот пример не работает для меня, что я должен изменить, чтобы эта задача работала?
Nifi: как получить файл потока на основе файлового фильтра
Ответы (1)
Эта версия session.get() принимает объект FlowFileFilter. В приведенном выше коде вы передаете логическое значение (если в этот момент даже определен fileSize). Хорошей новостью является то, что, поскольку интерфейс FlowFileFilter имеет единственный метод, вы можете использовать принудительное замыкание, чтобы предоставить замыкание как объект FlowFileFilter. Это пример сценария Groovy, принимающего только потоковые файлы, размер которых > 1:
import static org.apache.nifi.processor.FlowFileFilter.FlowFileFilterResult
def flowFiles = session.get({f ->
return f.size > 0 ? FlowFileFilterResult.ACCEPT_AND_CONTINUE
: FlowFileFilterResult.REJECT_AND_CONTINUE}
as FlowFileFilter)
flowFiles?.each {session.transfer(it, REL_SUCCESS)}
person
mattyb
schedule
03.11.2017