# 🔬 Загрузка большого файла частями

- **Тип:** research
- **Категория:** Очередь — Разведка про докачку идёт после того, как обычная загрузка доведена: иначе сравнивать не с чем.
- **Зачем:** Гигабайтный файл едет одним запросом, и обрыв на девяноста процентах начинает его заново.

Шестичасовая диктофонная запись и видео из семейного архива весят гигабайты, а
уходят с телефона по сотовой сети. Сегодня приём читает форму целиком и держит
её в памяти до предела `router.MaxMultipartMemory`; что делать с обрывом,
неизвестно.

Решено начать с одного запроса, а докачку разобрать отдельно — это она.

## Вопрос

Чем чинить обрыв загрузки большого файла: готовым протоколом докачки, своей
нарезкой на части поверх обычной формы или пределом размера с отказом, и во что
каждый вариант обходится на стороне приложения, сервера и обратного прокси.

## Куда ляжет ответ

`docs/research/upload.md` — вариантами с ценой каждого. Выбор оформляется
решением в `docs/adr/`, потому что меняет публичный контракт приёма.

## Рамки

Ответ учитывает обратный прокси перед сервисом: его предел размера тела и
таймаут — часть цены. Хеш-сумма на стороне приложения разбирается здесь же:
она решает, можно ли пропустить загрузку целиком.
