Вернуть исходный файл потока в NiFi ExecuteStreamCommand - PullRequest
0 голосов
/ 16 марта 2020

У меня есть скрипт Python, который я пытаюсь запустить в NiFi с использованием процессора ExecuteStreamCommand. Когда файл сталкивается с проблемой в блоке try, я хочу вернуть исходный файл потока в блоке except. Обычно я просто делаю sys.stdout.write(flow_file) в блоке исключений, но проблема возникает, когда я пытаюсь прочитать это в систему, потому что кодировка utf-8 испорчена.

Как вернуть файл потока без вызова sys.stdout.write(flow_file)? Я также попытался просто сделать pass, но он также не может вернуть файл потока как что-либо кроме файла 0 байтов. Он получит путь к выходному потоку, но это все еще просто 0-байтовый файл, который мне не нужен.

Текущий сценарий

#!/usr/bin/python3

import sys

try:
    flow_file = sys.stdin.read()
    sys.stdout.write(str(flow_file))
except:
    # sys.stdout.write(flow_file) # returned 0 byte
    pass # returned 0 byte

...