Skip to content
7 / 15

Как спроектировать загрузку и раздачу файлов или видео?

Байты не должны проходить через ваш бэкенд ни при загрузке, ни при раздаче. Приложение выдаёт подписанную ссылку в объектное хранилище, клиент грузит напрямую, а большие файлы — многочастной загрузкой с докачкой отдельных частей. После загрузки клиент подтверждает её, и дальнейшая работа (проверка типа, антивирус, транскодирование видео в несколько качеств) уходит в фоновые задачи; статус файла — конечный автомат от pending до ready. Раздача идёт через CDN: публичное кэшируется по неизменяемому ключу, приватное отдаётся по короткоживущей подписанной ссылке. Главный компромисс — сколько ждать готовности: транскодирование занимает минуты, поэтому интерфейс проектируют вокруг асинхронного статуса, а не вокруг ответа на запрос загрузки.

Как спроектировать загрузку и раздачу файлов или видео? | JScriptiser