37 lines
2.8 KiB
Markdown
37 lines
2.8 KiB
Markdown
# 2026-08-20 — Лимиты загрузки + предупреждение в таблице (v0.0.50)
|
||
|
||
## Проблема
|
||
Юзер грузил всё подряд (сотни МБ, включая >200МБ) → HTTP 413 / SSE-обрыв.
|
||
Требование: понятная политика лимитов, но файлы сверх лимита НЕ молча скрывать —
|
||
показывать в таблице, чтобы юзер не повторял загрузку в недоумении.
|
||
|
||
## Решение (фронт, index.html)
|
||
Лимиты:
|
||
- 1 файл > 100 МБ → «не учитывается»
|
||
- сумма учитываемых > 1 ГБ → следующий файл тоже «не учитывается»
|
||
|
||
Логика:
|
||
- `MAX_FILE_BYTES = 100МБ`, `MAX_SESSION_BYTES = 1ГБ` (константы).
|
||
- `addFileWithDedup`: файл сверх лимита добавляется в `sf` (виден в таблице),
|
||
но имя кладётся в `overNames` (Set). Учитываемость считаем по не-overNames.
|
||
- `rr()`: строки с `overNames` получают класс `row-over` (красный фон/текст),
|
||
статус «🔥 не учитывается»; счётчик: «N учитываются + M свыше лимита · СУММА».
|
||
- `uploadFiles()`: строит `toSend` ТОЛЬКО из учитываемых, `sendIdx` маппит
|
||
idx-отправленного → idx в `sf` (прогресс/таймеры/start/done пишут в верную строку).
|
||
Если все переборные → «Нет файлов для обфускации (все превышают лимит)».
|
||
- Шапка: добавлена строка «Ограничения: файл не более 100 МБ, суммарно не более
|
||
1 ГБ. Файлы сверх лимита помечаются красным и не участвуют в обфускации.»
|
||
- CSS: `.row-over td { background: rgba(220,38,38,.10) !important; color:#c0392b; }`.
|
||
- `rm`/`resetAll` — чистят `overNames`.
|
||
|
||
Бэк НЕ менялся (MAX_CONTENT_LENGTH=200МБ, MAX_SESSION_BYTES=500МБ остались как защита
|
||
на сервере). Внимание: бэк-лимит 200МБ/запрос и 500МБ/сессия всё ещё ниже фронтовых
|
||
1ГБ — для файлов 100МБ-200МБ фронт пустит, но одиночный запрос >200МБ упадёт 413.
|
||
Это можно согласовать позже, если нужно.
|
||
|
||
## Проверка
|
||
- node --check секции <script> index.html — OK.
|
||
- py_compile app.py — OK.
|
||
- Лог-тест лимитов через node: 120МБ→перебор, 13 учитываемых ~995МБ, >1ГБ→перебор — верно.
|
||
- VERSION поднята до 0.0.50.
|