tasks: целевая картина пересобрана — три цели, тринадцать задач, сдвинутые границы
- паспорт: сервис объявлен архивом с бессрочным хранением записей и текстов, машинная вычитка расшифровки внутри границ, приложение — основной вход; добавлены две границы: не файловое хранилище общего назначения и не биллинг; - заведены цели upload-reliability, user-settings, usage-stats и тринадцать задач; очередь пересобрана — сперва починки, затем разведки о хранилище, затем доступ и владелец, и только потом экраны; - архитектура: четыре новых открытых вопроса — приём большого файла, учёт расхода, срок хранения, потолок шести часов.
This commit is contained in:
@@ -0,0 +1,39 @@
|
||||
# ✨ Принимать до десяти файлов одной загрузкой
|
||||
|
||||
- **Тип:** feature
|
||||
- **Категория:** Очередь
|
||||
- **Зачем:** Приём берёт один файл в запросе, а с телефона выбирают пачку сразу: десять записей значат десять заходов на экран загрузки.
|
||||
- **Теги:** goal:upload-reliability
|
||||
|
||||
Двигает пункт 2 «Завершения» цели: пачка файлов уходит одной загрузкой, и отказ
|
||||
одного не отменяет остальные.
|
||||
|
||||
## Затрагивает
|
||||
|
||||
- контракт `POST /api/audio`: несколько файлов в одной форме и ответ списком;
|
||||
- `TranscribeService.createTranscribeJob` — заведение нескольких задач одним
|
||||
запросом;
|
||||
- экран загрузки: выбор нескольких файлов и показ их состояний;
|
||||
- предел числа файлов и предел размера запроса на стороне сервера;
|
||||
- `docs/database.md` — предел числа файлов числом.
|
||||
|
||||
## Критерии приёмки
|
||||
|
||||
- Десять файлов одной формой заводят десять задач, и ответ отдаёт
|
||||
идентификатор каждой. Оракул — тест приёма: в ответе десять записей, в
|
||||
репозитории десять задач.
|
||||
- Негодный файл в пачке отклоняется поимённо, а годные соседи заводятся. Оракул
|
||||
— тест на пачке из годного и негодного: одна задача заведена, второй элемент
|
||||
ответа несёт причину отказа.
|
||||
- Одиннадцатый файл отклоняется до чтения содержимого, с названным пределом.
|
||||
Оракул — тест на пачке из одиннадцати: задач не заведено, в теле ответа
|
||||
предел числом.
|
||||
- Прежний вызов с одним файлом работает по-старому. Оракул — существующие тесты
|
||||
приёма по HTTP.
|
||||
|
||||
## Рамки
|
||||
|
||||
Публичный контракт `POST /api/audio` меняется, а это необратимо — форма ответа
|
||||
согласуется с человеком. Загрузка частями сюда не входит: это
|
||||
`chunked-upload-choice`. Приём из Telegram не трогается — бот присылает файлы по
|
||||
одному.
|
||||
Reference in New Issue
Block a user