онлайн
← Назад в портфолио

// веб-сервисы / Веб-сервис

IMGPOST: приватное медиахранилище

Фотохостинг с упором на приватность: короткие ссылки, защищённые альбомы, генерация превью и настраиваемое автоудаление по таймеру или после первого просмотра.
PHP 8.1 Laravel 10 Livewire MySQL Intervention Image Flysystem Queues Spatie Permission
IMGPOST: приватное медиахранилище preview
веб-сервисы / Веб-сервис / case study
// Задача

Спроектировать публикацию изображений как управляемый жизненный цикл, а не как вечное публичное хранение.

Задачи

  • Валидировать загрузки и создавать оптимизированный оригинал вместе с превью 100×100.
  • Удалять файл через заданное время или запускать отсчёт после первого просмотра.
  • Защищать изображения и целые альбомы собственным или автоматически созданным паролем.
  • Управлять владельцами, галереями, короткими ссылками, метаданными и модерацией.
// Решение

Роль: fullstack-разработчик — pipeline загрузки, абстракция хранения, контроль доступа, lifecycle-задачи и UX галерей.

Собрал сервис на Laravel 10 и Livewire, обработку изображений — через Intervention Image, файловый слой — через Flysystem. Фоновая очередь пакетами находит истёкшие записи, удаляет оригиналы и превью, затем очищает связи в БД. Jetstream, Sanctum и роли покрывают аккаунты и администрирование; слой хранения готов для локального диска или S3-совместимого object storage.

// Стек
PHP 8.1 Laravel 10 Livewire MySQL Intervention Image Flysystem Queues Spatie Permission
// metrics
primary
8 image formats
secondary
scheduled cleanup
kind
Web / Storage