tasks: целевая картина пересобрана — три цели, тринадцать задач, сдвинутые границы
- паспорт: сервис объявлен архивом с бессрочным хранением записей и текстов, машинная вычитка расшифровки внутри границ, приложение — основной вход; добавлены две границы: не файловое хранилище общего назначения и не биллинг; - заведены цели upload-reliability, user-settings, usage-stats и тринадцать задач; очередь пересобрана — сперва починки, затем разведки о хранилище, затем доступ и владелец, и только потом экраны; - архитектура: четыре новых открытых вопроса — приём большого файла, учёт расхода, срок хранения, потолок шести часов.
This commit is contained in:
@@ -0,0 +1,24 @@
|
||||
# 🎯 Загрузка большого файла доходит до сервиса и не повторяется впустую
|
||||
|
||||
- **Тип:** goal
|
||||
- **Секция:** Запланировано
|
||||
- **Зачем:** Приём рассчитан на голосовое в пару мегабайт: обрыв на середине гигабайтного файла начинает загрузку заново, а один и тот же файл распознаётся повторно за наши деньги.
|
||||
|
||||
Человек отдаёт диктофонную запись или видео из семейного архива с телефона, по
|
||||
сотовой сети, и загрузка либо доходит, либо честно говорит, что не дошла.
|
||||
Отданное однажды второй раз не грузится и второй раз не распознаётся.
|
||||
|
||||
Дедупликация ищет совпадение **в пределах одного пользователя**: чужая
|
||||
расшифровка не достаётся по совпадению хеш-суммы, даже когда файл тот же.
|
||||
|
||||
Загрузка частями за целью пока **не стоит**: сначала один запрос, а протокол
|
||||
докачки разбирает разведка.
|
||||
|
||||
## Завершение
|
||||
|
||||
1. Файл, уже загруженный этим пользователем, узнаётся по хеш-сумме: сервис
|
||||
возвращает прежнюю запись и не заводит вторую задачу.
|
||||
2. До десяти файлов уходят одной загрузкой, и отказ одного не отменяет
|
||||
остальные.
|
||||
3. Ход загрузки виден на экране числом, а не одним ожиданием.
|
||||
4. Оборванная загрузка не оставляет ни файла в хранилище, ни задачи в очереди.
|
||||
Reference in New Issue
Block a user