# Opus — DrHider: использовать логику основного сервиса Файл: `/home/naeel/nubes/contracts/contracts-flask/History/opus-drhider-reuse-logic-2026-06-29.md` 29.06.2026 ## Проблема DrHider с нуля изобрёл загрузку файлов (JSON+base64, чанки), хотя основной сервис Сверки УЖЕ делает загрузку корректно через multipart/form-data напрямую на VM. Это привело к багам (переполнение аргументов JS, битый base64, HTTP/2 глюки). ## Что нужно Использовать ту же логику загрузки что в основном сервисе: 1. JS: `FormData` + `fetch` → POST multipart на VM (`contracts.kube5s.ru/api/drhider`) 2. VM (`convert_server.py`): принимать multipart, парсить (как в `handle_upload`), отдавать ZIP Не JSON. Не base64. Как в Сверке. ## Файлы для анализа Основной сервис (рабочая загрузка): - `/home/naeel/nubes/contracts/contracts-flask/site/templates/index.html` — JS загрузки (FormData, fetch, drag&drop) - `/home/naeel/nubes/contracts/contracts-flask/deploy/convert_server.py` — `handle_upload` (multipart приём, `parse_multipart`) - `/home/naeel/nubes/contracts/contracts-flask/deploy/services/upload.py` — `parse_multipart`, `store_document` DrHider (что есть сейчас): - `/home/naeel/nubes/contracts/contracts-flask/site/templates/drhider.html` — JS с JSON+base64 (кривое) - `/home/naeel/nubes/contracts/contracts-flask/deploy/convert_server.py` — `_handle_drhider` (JSON приём) - `/home/naeel/nubes/contracts/contracts-flask/deploy/services/drhider.py` — ядро (ок) ## Вопросы 1. Можно ли скопировать JS-логику загрузки из index.html в drhider.html 1:1? FormData, fetch на VM, progress? 2. Можно ли в `_handle_drhider` использовать `parse_multipart` из `services/upload.py` как в `handle_upload`? 3. Как совместить приём multipart + вызов `obfuscate_files()` + отдача ZIP — минимальными изменениями? 4. Нужно ли добавлять отдельный nginx location для `/api/drhider` с `client_max_body_size` (как для `/upload`)?