Files
transcriber/tasks/items/multi-file-upload.md
T
av d2c85af80a tasks: целевая картина пересобрана — три цели, тринадцать задач, сдвинутые границы
- паспорт: сервис объявлен архивом с бессрочным хранением записей и текстов,
  машинная вычитка расшифровки внутри границ, приложение — основной вход;
  добавлены две границы: не файловое хранилище общего назначения и не биллинг;
- заведены цели upload-reliability, user-settings, usage-stats и тринадцать
  задач; очередь пересобрана — сперва починки, затем разведки о хранилище,
  затем доступ и владелец, и только потом экраны;
- архитектура: четыре новых открытых вопроса — приём большого файла, учёт
  расхода, срок хранения, потолок шести часов.
2026-08-11 10:05:22 +03:00

2.7 KiB

Принимать до десяти файлов одной загрузкой

  • Тип: feature
  • Категория: Очередь
  • Зачем: Приём берёт один файл в запросе, а с телефона выбирают пачку сразу: десять записей значат десять заходов на экран загрузки.
  • Теги: goal:upload-reliability

Двигает пункт 2 «Завершения» цели: пачка файлов уходит одной загрузкой, и отказ одного не отменяет остальные.

Затрагивает

  • контракт POST /api/audio: несколько файлов в одной форме и ответ списком;
  • TranscribeService.createTranscribeJob — заведение нескольких задач одним запросом;
  • экран загрузки: выбор нескольких файлов и показ их состояний;
  • предел числа файлов и предел размера запроса на стороне сервера;
  • docs/database.md — предел числа файлов числом.

Критерии приёмки

  • Десять файлов одной формой заводят десять задач, и ответ отдаёт идентификатор каждой. Оракул — тест приёма: в ответе десять записей, в репозитории десять задач.
  • Негодный файл в пачке отклоняется поимённо, а годные соседи заводятся. Оракул — тест на пачке из годного и негодного: одна задача заведена, второй элемент ответа несёт причину отказа.
  • Одиннадцатый файл отклоняется до чтения содержимого, с названным пределом. Оракул — тест на пачке из одиннадцати: задач не заведено, в теле ответа предел числом.
  • Прежний вызов с одним файлом работает по-старому. Оракул — существующие тесты приёма по HTTP.

Рамки

Публичный контракт POST /api/audio меняется, а это необратимо — форма ответа согласуется с человеком. Загрузка частями сюда не входит: это chunked-upload-choice. Приём из Telegram не трогается — бот присылает файлы по одному.