Процессор Nifi не сохраняет расширение файла

#file #pdf #apache-nifi #mime-types #doc

#файл #PDF #apache-nifi #mime-типы #doc

Вопрос:

У меня есть поток Nifi, в котором файл документа, например / pdf, doc и т. Д., Отправляется из REST API в процессор Nifi ListenHTTP. Процессор настроен на прием всех заголовков. Вот моя проблема

Шаги для воспроизведения:

  1. hello-world.pdf отправлен на процессор ListenHttp
  2. проверьте очередь и загрузите файл

ожидаемый результат: загруженный файл должен называться «hello-world.pdf»

фактический результат: загруженный файл называется «hello-world»

Однако, если я использую процессор HandleHttpRequest, за которым следует процессор HandleHttpResponse, я получаю ожидаемый результат.

Кто-нибудь знает, почему процессор ListenHttp не дает мне ожидаемого результата?

Комментарии:

1. Ваше сообщение не соответствует заголовку вопроса — расширение файла .pdf не является mime-типом, который был бы application/pdf

2. @Sdairs Исправлено!

Ответ №1:

Решение состоит в том, чтобы добавить процессор ‘update attribute’ с атрибутом

mime.type значение ключа ${Content-Type}

Это связано с тем, что процессор HttpListener по умолчанию не записывает этот заголовок.

Комментарии:

1. Так почему бы просто не использовать Content-Type ?

2. Файл потока уже имеет Content-Type, он не работает. Согласно документации, другие HttpProcessors автоматически добавляют mime.type, HttpListener этого не делает. Без атрибута mime.type расширение файла в полезной нагрузке flowfile не будет сохранено.