Files
transcriber/tasks/items/chunked-upload-choice.md
T
av 8739b18a9f tasks: очередь расставлена от базы к деталям
- порядок беклога и роадмапа назначен слоями: проверки, которым можно
  верить → долги входа → владелец записи и контракт API → конвейер под
  тестами → приложение и возможности поверх; у каждого движения записана
  причина;
- заведены восемь задач под пункты «Завершения», которых не закрывала ни
  одна запись, — цель any-audio-source была без задач вовсе;
- у четырёх задач сняты критерии, требовавшие того, что делает задача ниже
  по очереди; исправлены ссылки на несуществующий repo/sqlite и на
  отменённую разведку об очереди.
2026-08-12 20:48:53 +03:00

2.1 KiB

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

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

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

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

Вопрос

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

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

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

Рамки

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