Files
transcriber/tasks/items/multi-file-upload.md
T
av 79ff12548f tasks: спроектирован контракт приложения и переставлена голова очереди
- json-api-for-spa: адреса приложения уехали в своё пространство /app/,
  приём стал POST /app/audiorecords, опрос /api/status/:id убран, заведены
  список, карточка, текст, /app/me и /app/config; имя файла отправителя
  легло своей колонкой рядом с заголовком
- три действия над записью — правка заголовка, возврат в работу и журнал
  событий — собраны задачей audiorecord-actions
- голова очереди: контракт, каркас, экран загрузки, список, действия
- в прежних задачах поправлены адреса, рубежи конвейера и остатки Telegram
2026-08-15 09:06:11 +03:00

3.2 KiB

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

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

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

Затрагивает

  • контракт POST /app/audiorecords: несколько файлов в одной форме и ответ списком;
  • TranscribeService.createRecord — заведение нескольких записей одним запросом;
  • экран загрузки: выбор нескольких файлов и показ их рубежей;
  • предел числа файлов и предел размера запроса на стороне сервера;
  • GET /app/config — предел числа файлов, чтобы экран знал его до отправки;
  • docs/database.md — предел числа файлов числом.

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

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

Рамки

Публичный контракт POST /app/audiorecords меняется, а это необратимо. Форма ответа при этом заново не согласуется: она сведена списком с местом под признак повтора задачей json-api-for-spa — решением владельца от 2026-08-12 — как раз для того, чтобы эта задача её не переписывала. Меняется число файлов в запросе, не форма ответа. Загрузка частями сюда не входит: это chunked-upload-choice.