Docs: how-to-test-upload-devops; ignore llm.key

This commit is contained in:
naeel
2026-08-17 17:25:42 +04:00
parent f3437b2969
commit 5c9c68b02b
2 changed files with 62 additions and 0 deletions
+1
View File
@@ -4,3 +4,4 @@ dogovora/
testgen/out/
testgen/out_100files/
contracts-flask/hz/
llm.key
+61
View File
@@ -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→…