Выбор ответа Middle Выбор хранилища обновлено

Загрузка файлов в S3

Вопрос

Как разгрузить API от передачи больших файлов при загрузке пользователем?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: Presigned URL: клиент грузит напрямую в S3 и сообщает API. Presigned URL даёт клиенту временное право записать конкретный объект напрямую в хранилище: трафик не идёт через ваш API, а для больших файлов есть multipart upload.

Варианты ответа

  1. Принимать файл в API, хранить во временной папке, ночью в S3
  2. Отправлять файлы через WebSocket частями по 1 МБ
  3. Загружать в БД, а затем переносить в S3 триггером
  4. Presigned URL: клиент грузит напрямую в S3 и сообщает APIправильный ответ

Разбор

Presigned URL даёт клиенту временное право записать конкретный объект напрямую в хранилище: трафик не идёт через ваш API, а для больших файлов есть multipart upload. Остальные варианты прокачивают гигабайты через приложение или БД и усложняют систему. Ночное копирование к тому же делает файл недоступным до утра.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.

Термины по теме