fix(indexer): понятная ошибка, если загруженный "PDF" на самом деле не PDF
Живой репорт: проверка плагиата упала с "Не удалось открыть PDF: code=7: no objects found" — сырая внутренняя ошибка MuPDF. Разобрал файл из MinIO: это HTML-страница (веб-интерфейс роутера D-Link DAP-400P), сохранённая с расширением .pdf — 2049 байт, не PDF вообще. Система корректно отказалась парсить мусор (это не баг пайплайна — реальный битый/не-PDF файл юзера), но сообщение об ошибке было нечитаемым. extract_text_from_pdf теперь проверяет magic-байты (%PDF-) ДО попытки fitz.open() и даёт понятное "Файл повреждён или не является PDF-документом" для этого частого случая; для настоящих PDF с внутренней порчей — прежнее поведение (сырая ошибка MuPDF как detail, для диагностики). 4 юнит-теста (валидный PDF, HTML под видом PDF, пустые байты, битый заголовок PDF). Тестов всего: 122 (было 118). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -6,3 +6,4 @@ xxhash==3.4.1
|
||||
datasketch==1.6.5
|
||||
numpy==1.26.4
|
||||
pydantic-settings==2.2.1
|
||||
PyMuPDF==1.24.0
|
||||
|
||||
Reference in New Issue
Block a user