Files
contracts-flask/History/opus-drhider-reuse-logic-2026-06-29.md
T
naeel 74c2bdfcb7
Deploy contracts-flask / validate (push) Successful in 0s
docs: Opus — reuse main service upload logic for DrHider
2026-06-29 18:00:12 +04:00

38 lines
2.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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`)?