Docs: how-to-test-upload-devops; ignore llm.key
This commit is contained in:
@@ -4,3 +4,4 @@ dogovora/
|
|||||||
testgen/out/
|
testgen/out/
|
||||||
testgen/out_100files/
|
testgen/out_100files/
|
||||||
contracts-flask/hz/
|
contracts-flask/hz/
|
||||||
|
llm.key
|
||||||
|
|||||||
@@ -0,0 +1,61 @@
|
|||||||
|
# Как проверить загрузку файлов в Contracts (для DevOps Nubes)
|
||||||
|
|
||||||
|
Цель: воспроизвести «чистую» загрузку файла с клиента на сервер, без обработки,
|
||||||
|
чтобы поймать обрыв на ингрессе/периметре (граница ~64 КБ, плавает по маршруту).
|
||||||
|
|
||||||
|
## 1. Какой инстанс / где смотреть
|
||||||
|
|
||||||
|
- Деплой и домен: смотри `contracts-flask/deploy/` и `VM.md` (в этой репе).
|
||||||
|
- Внешний путь: NSX Edge + AVI ALB → Kubernetes Ingress (nginx) → поды Flask.
|
||||||
|
- Сервер отдаёт **именно загрузку файлов**: интерфейс = выбор файла в локали →
|
||||||
|
клиент режет на чанки 50 КБ → POST `/chunk` → сервер копит и собирает файл.
|
||||||
|
|
||||||
|
## 2. Что важно знать (контекст из истории)
|
||||||
|
|
||||||
|
- Проблема ингресса уже встречалась: прямой POST файла резался
|
||||||
|
`client_max_body_size` (весной, PDF 153 КБ → «✗ Сеть»).
|
||||||
|
- Сейчас обход — **чанковая загрузка по 50 КБ** (`file.slice(0,50KB)` → `/chunk`).
|
||||||
|
Значит, «большой файл» для проверки = много чанков, а не один POST.
|
||||||
|
- Для диагностики полезно проверить ОБА способа:
|
||||||
|
а) обычная загрузка через UI (чанки);
|
||||||
|
б) прямой большой POST = то, что ближе к «чистому» обрыву на шлюзе.
|
||||||
|
|
||||||
|
## 3. Как проверять (по шагам)
|
||||||
|
|
||||||
|
### Шаг 1. Поднять/найти инстанс
|
||||||
|
- Определи, где сейчас развёрнут сервис (см. `deploy/`, `VM.md`).
|
||||||
|
- Убедись, что сервис отвечает (лендинг/UI).
|
||||||
|
|
||||||
|
### Шаг 2. Чистая загрузка через UI (чанки)
|
||||||
|
- В веб-интерфейсе выбери файл в локали (начни с 1–5 МБ).
|
||||||
|
- Наблюдай прогресс: чанки должны идти последовательно.
|
||||||
|
- Критерий сбоя: прогресс встаёт, «✗ Сеть», или не хватает чанков при сборе.
|
||||||
|
|
||||||
|
### Шаг 3. Прямой большой POST (обнажает границу шлюза)
|
||||||
|
- Одним запросом отправь файл ~1–5 МБ на endpoint загрузки.
|
||||||
|
- Ожидание: если проблема есть — запрос обрывается на ~середине,
|
||||||
|
частичная передача, таймаут.
|
||||||
|
- Сравни с малым файлом (~10 КБ): должен пройти мгновенно.
|
||||||
|
|
||||||
|
### Шаг 4. Серия размеров (найти границу)
|
||||||
|
- Прогони один и тот же файл в размерах: ~10 КБ, ~50 КБ, ~64 КБ, ~100 КБ,
|
||||||
|
~1 МБ, ~5 МБ.
|
||||||
|
- Зафиксируй порог, с которого начинаются сбои (у нас он плавает ~64 КБ).
|
||||||
|
|
||||||
|
### Шаг 5. Снять симптомы «глазами пользователя»
|
||||||
|
- Что видит пользователь: прогресс%, код ошибки браузера, «Сеть»/таймаут.
|
||||||
|
- Если есть доступ к подам: логи nginx-ингресса и пода на момент обрыва
|
||||||
|
(хватит ли байт пришло).
|
||||||
|
|
||||||
|
## 4. Что сообщить DevOps по результатам
|
||||||
|
|
||||||
|
- Размер, на котором воспроизводится обрыв (порог).
|
||||||
|
- Это чанки или прямой POST.
|
||||||
|
- Точное время и домен инстанса (у нас баг нестабилен — плавает по маршруту,
|
||||||
|
поэтому важно поймать момент и передать «на горячем»).
|
||||||
|
|
||||||
|
## 5. Полезные ссылки из репо
|
||||||
|
|
||||||
|
- `History/sessions/session-07-chunks.md` — вся история чанковой загрузки и
|
||||||
|
обхода `client_max_body_size`.
|
||||||
|
- `History/architecture-research-v2-2026-06-27.md` — поток Upload→Parse→…
|
||||||
Reference in New Issue
Block a user