Мне раньше удалось разобрать все файлы с помощью Tika, вызвав tika.parseToString()
без установки каких-либо пользовательских настроек или метаданных. Теперь у меня есть необходимость фильтровать файлы для анализа на основе mime-типа.Tika не удалось разобрать после обнаружения mime-типа
Я могу найти mime-тип с tika.detect(new BufferedInputStream(inputStream), new Metadata());
, но при вызове tika.parseToString()
после этого tika использует EmptyParser, и обнаружен тип контента - «application/octet-stream». Это значение по умолчанию означает, что tika не может найти, какой тип файла он имеет. Я попытался установить тип содержимого в метаданных, прежде чем пытаться проанализировать файл, но это приводит к org.apache.tika.exception.TikaException: TIKA-198: Illegal IOException
. Из того, что я прочитал, это означает, что файл искажен, но те же файлы успешно разбираются без предварительной проверки типа mime.
Определяет() что-то делает с InputStream, что делает синтаксический анализатор неспособным анализировать файлы?
Я использую тот же Тик-экземпляр как для проверки мима-типа и синтаксического анализа, версия 1,13