v7.0.0: API upload/process/download, session.py, фронт без обработки — всё на бэкенде
Deploy drhider / validate (push) Waiting to run
Deploy drhider / validate (push) Waiting to run
This commit is contained in:
@@ -0,0 +1,39 @@
|
||||
# Запрос к Соннету — архитектура пофайловой обработки с одним ZIP (2026-07-13)
|
||||
|
||||
## Задача
|
||||
|
||||
DrHider (Flask + waitress). Ограничения:
|
||||
- Фронтенд должен слать файлы **по одному** (сеть не пропускает большие multipart)
|
||||
- Бэкенд должен обрабатывать **по одному** (без параллельных LLM-запросов)
|
||||
- Результат: **один ZIP** со всеми обфусцированными .md + **один общий** mapping.csv
|
||||
- **Никакой обработки данных в JS** — фронтенд только кнопки и скачивание
|
||||
|
||||
## Варианты
|
||||
|
||||
### А. Upload → Process
|
||||
1. `POST /api/upload` — один файл → `{session:"abc"}`
|
||||
2. Фронтенд циклом шлёт все, получает session
|
||||
3. `POST /api/process/abc` — бэкенд обрабатывает всё → ZIP
|
||||
4. Фронтенд скачивает ZIP
|
||||
|
||||
### Б. Один запрос, все файлы
|
||||
1. Фронтенд: один POST, все файлы в FormData
|
||||
2. Бэкенд: получил все → обработал по одному → ZIP
|
||||
3. Waitress держит долгое соединение, таймаут 600с
|
||||
|
||||
### В. SSE с прогрессом
|
||||
1. `POST /api/start` → `{session:"abc"}`
|
||||
2. `POST /api/upload/abc` — по одному файлу
|
||||
3. `GET /api/process/abc` — SSE стримит прогресс каждого файла и в конце ZIP
|
||||
|
||||
## Вопросы
|
||||
|
||||
1. Какой вариант правильный для Flask + waitress?
|
||||
2. Вариант Б — пройдёт ли большой multipart через ingress (6 файлов × 30-60 KB)?
|
||||
3. Если А — как чистить сессии? (пользователь закрыл вкладку, файлы остались в памяти)
|
||||
4. Нужен ли SSE или достаточно простого XHR с таймером?
|
||||
5. mapping.csv — генерировать на лету (по мере обработки) или после всех файлов?
|
||||
|
||||
## Сейчас работает (но сломано)
|
||||
|
||||
Сейчас: фронтенд шлёт по одному файлу, каждый получает отдельный ZIP. Пользователь хочет один ZIP в конце. JS обрабатывал ZIP'ы (распаковывал/перепаковывал) — это убрали, всё должно быть на бэкенде.
|
||||
Reference in New Issue
Block a user