Управление изображениями и медиафайлами: Хранение в S3 и доставка через CDN

В этой статье объясняется, как мы эффективно храним, организуем и доставляем изображения товаров.

Проблема: Управление тысячами изображений

У нас есть:

  • Множество артикулов товаров (5k+), каждый с несколькими изображениями

  • Изображения компонентов (10k+) (шасси, платы, аксессуары)

  • Видео товаров для ключевых продуктов

  • Несколько форматов (WebP для веба, PNG для технических спецификаций)

Хранение изображений на веб-сервере вызывает:

  • Проблемы с дисковым пространством: Сотни ГБ изображений

  • Медленная доставка: Ограничения пропускной способности сервера

  • Отсутствие глобального CDN: Медленно для международных пользователей

  • Сложность резервного копирования: Резервное копирование больших файлов

Решение: S3 + CloudFront

Мы используем AWS S3 для хранения и CloudFront для доставки:

  • S3: Масштабируемое объектное хранилище с версионированием

  • CloudFront: Глобальная CDN для быстрой доставки

  • Манифест изображений: Центральный реестр местоположений изображений

  • Формат WebP: Значительно меньше (на 30-50%), чем PNG/JPEG

Хранение изображений

Изображения товаров хранятся в S3:

  • Бакет S3: Объектное хранилище для медиафайлов товаров

  • Формат: WebP для оптимизированных изображений

  • Видео: MP4 для видео товаров

  • Манифест: Центральный реестр местоположений изображений

Получение изображений

Изображения загружаются из S3 с использованием манифеста изображений:

  1. Манифест изображений: Центральный реестр местоположений изображений
  2. Бакет S3: Изображения товаров, хранящиеся в объектном хранилище
  3. Формат WebP: Оптимизированные изображения для быстрой загрузки
  4. Запасной вариант: Заглушки, когда реальные изображения недоступны

Кэширование изображений

Мы кэшируем изображения в памяти:

  • Глобальный кэш: Кэш в памяти для поиска изображений

  • Ключ по детали/артикулу: Быстрый поиск по идентификатору

  • Инвалидация кэша: При обновлении запасов через хуки

Структура каталогов изображений

Изображения организованы по идентификаторам деталей:

  • Изображения деталей: Организованы по ID детали

  • Изображения артикулов: Комбинации шасси, платы, WiFi

  • Видеофайлы: Хранятся вместе с изображениями

Обработка изображений

Мы обрабатываем изображения для различных случаев использования:

Доставка через CloudFront

Изображения доставляются через CDN:

  • Кэширование на границе сети: Граничные локации по всему миру

  • Сниженная задержка: Пользователи получают контент с ближайшего граничного узла

  • Защита от DDoS: Встроенная защита

Итог

Управление изображениями и медиафайлами обеспечивает:

  • Хранение в S3: Изображения товаров, технические спецификации, логотипы клиентов

  • Формат WebP: Оптимизированные изображения для быстрой загрузки

  • Манифест изображений: Центральный реестр местоположений изображений

  • Кэширование: Кэш в памяти для производительности

  • Доставка через CloudFront: Быстрая глобальная доставка