Контент
Загрузка файлов
Прямая загрузка в S3 с прогрессом и превью
Файлы уходят в хранилище напрямую из браузера по подписанной ссылке — сервер не держит поток и не упирается в лимит тела запроса. Проверка типа и размера, превью картинок, приватные ссылки со сроком жизни.
Что внутри
- Загрузка напрямую в S3 по подписанной ссылке
- Прогресс, отмена и повтор при обрыве
- Проверка типа по содержимому, а не по расширению
- Приватные файлы по ссылке со сроком жизни
Что добавит в проект
Поверх общей базы — она уже даёт авторизацию, базу и интерфейс.
Таблицы в базе1
Пакеты npm2
Маршруты2
Переменные окружения4
- S3_ENDPOINT
- Адрес S3-совместимого хранилища
- S3_BUCKET
- Имя бакета
- S3_ACCESS_KEY_ID
- Идентификатор ключа доступа
- S3_SECRET_ACCESS_KEY
- Секретный ключ
Разбор архитектуры
Расширение файла ничего не гарантирует: тип проверяется по сигнатуре содержимого. Запись в базе создаётся до загрузки со статусом «ожидается» и подтверждается после — иначе в базе появляются ссылки на файлы, которых нет, потому что пользователь закрыл вкладку на середине.
Общая база
Пустое, но рабочее приложение: авторизация, база, UI-кит и деплой уже собраны и связаны между собой. Модули не переписывают его файлы — они добавляют свои и регистрируются в готовых точках расширения, поэтому их можно ставить в любом сочетании.