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

2.4 KiB
Raw Blame History

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.pyhandle_upload (multipart приём, parse_multipart)
  • /home/naeel/nubes/contracts/contracts-flask/deploy/services/upload.pyparse_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)?