Управление изображениями и медиафайлами: Хранение в 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 с использованием манифеста изображений:
- Манифест изображений: Центральный реестр местоположений изображений
- Бакет S3: Изображения товаров, хранящиеся в объектном хранилище
- Формат WebP: Оптимизированные изображения для быстрой загрузки
- Запасной вариант: Заглушки, когда реальные изображения недоступны
Кэширование изображений
Мы кэшируем изображения в памяти:
-
Глобальный кэш: Кэш в памяти для поиска изображений
-
Ключ по детали/артикулу: Быстрый поиск по идентификатору
-
Инвалидация кэша: При обновлении запасов через хуки
Структура каталогов изображений
Изображения организованы по идентификаторам деталей:
-
Изображения деталей: Организованы по ID детали
-
Изображения артикулов: Комбинации шасси, платы, WiFi
-
Видеофайлы: Хранятся вместе с изображениями
Обработка изображений
Мы обрабатываем изображения для различных случаев использования:
-
Полные изображения: Страницы товаров
-
Обрезанные изображения: Технические спецификации (только первое изображение)
-
Заглушки: Запасной вариант, когда изображения недоступны
Доставка через CloudFront
Изображения доставляются через CDN:
-
Кэширование на границе сети: Граничные локации по всему миру
-
Сниженная задержка: Пользователи получают контент с ближайшего граничного узла
-
Защита от DDoS: Встроенная защита
Итог
Управление изображениями и медиафайлами обеспечивает:
-
Хранение в S3: Изображения товаров, технические спецификации, логотипы клиентов
-
Формат WebP: Оптимизированные изображения для быстрой загрузки
-
Манифест изображений: Центральный реестр местоположений изображений
-
Кэширование: Кэш в памяти для производительности
-
Доставка через CloudFront: Быстрая глобальная доставка