2.1 KiB
2.1 KiB
Запрос: загрузка файлов с нуля
Задача: надёжная загрузка docx/pdf/zip (до 50MB) через веб-интерфейс.
Ресурсы
- Flask (managed pythonk8s.services.ngcloud.ru, деплой = git push)
- PostgreSQL 17.6 (внутренний кластер
postgresqlk8s-master...svc.cluster.local) - Redis (внутренний
redisk8s...svc.cluster.local, admin/aLITloRefJEiCPqUc2xB) - БД: пул psycopg2 (2-10, keepalive), таблицы есть (
documents,contracts,supplements) - Парсеры: python-docx (DOCX), pdfplumber (PDF), zipfile (ZIP), textify.to_text()
- LLM: aillm.ru (gpt-oss-120b), HTTP/2
- Клиент: браузер, XHR POST, JSON body
Что НЕ работает (43 версии)
- POST с телом > 64KB → nginx/Ingress рвёт TCP (HTTP 000, ReadTimeout)
- 10-50KB: 100% надёжно
- FormData, JSON/base64, чанки, Redis, retry — ничего не помогло
- 64KB — жёсткий предел платформы
Что нужно
- Архитектура загрузки — гарантированно обходящая лимит 64KB на тело запроса
- Прогресс на клиенте — интерактивно (имя файла, проценты, таймер)
- Парсинг после загрузки — извлечение параграфов, таблиц, стилей
- ZIP — показывать содержимое, парсить файлы внутри
Вопросы
- Как обойти 64KB лимит тела запроса?
- Чанки — на клиенте или сервере?
- Redis — нужен или нет для этой задачи?
- Как гарантировать целостность файла при чанковой загрузке?
- Какая структура БД оптимальна для хранения результатов парсинга?
Ответь кратко: архитектура (3-5 пунктов), потом отвечу на вопросы.