Система для обработки и раздачи картинок,видео и др. файлов. Имеет веб-интерфейс для контроля и статистики. Также поддерживается разграничение прав доступа. Т.е. однажды установив систему Вы можете её использовать для множества проектов.
Основная идея заключается в том, чтобы система легко поднималась для любого проекта и обеспечивала бы локальный процессинг и раздачу файлов. Процессинг файлов очень гибок, т.к. может делаться внутренними способами php, сторонними утилитами или даже любым докер-контейнером. Цепочки процессинга определяются в конфигурационных файлах.
Technology stack:
- nginx
- mongodb
- php7 + laravel
- docker
- Загрузка файла
- Получение ID загруженного файла
- Сохраняете ID у себя в проекте.
- Получение файла по ID по http. Указывание доп. параметров для модификаций над файлом.
Хранение осуществляется через библиотеку Flysystem, которая имеет адаптеры для Azure, AWS S3, GridFS, WebDAV и т.п. Т.е. Вы сами можете выбрать хранилище для файлов.
Раздачей занимается nginx. Сначала проверяется наличие файла в кеше nginx, если файла нет, то он запрашивается у php-обработчика.
Перед сервером раздачи можно легко подключить любой CDN и таким образом ускорить загрузку файлов, разгрузить сервер и сэкономить на трафике.