Выбор ответа Middle Выбор хранилища обновлено
Загрузка файлов в S3
Вопрос
Как разгрузить API от передачи больших файлов при загрузке пользователем?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: Presigned URL: клиент грузит напрямую в S3 и сообщает API. Presigned URL даёт клиенту временное право записать конкретный объект напрямую в хранилище: трафик не идёт через ваш API, а для больших файлов есть multipart upload.
Варианты ответа
- Принимать файл в API, хранить во временной папке, ночью в S3
- Отправлять файлы через WebSocket частями по 1 МБ
- Загружать в БД, а затем переносить в S3 триггером
- Presigned URL: клиент грузит напрямую в S3 и сообщает APIправильный ответ
Разбор
Presigned URL даёт клиенту временное право записать конкретный объект напрямую в хранилище: трафик не идёт через ваш API, а для больших файлов есть multipart upload. Остальные варианты прокачивают гигабайты через приложение или БД и усложняют систему. Ночное копирование к тому же делает файл недоступным до утра.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.