Cover Image for Перенос файлов WordPress в S3‑совместимые хранилища с помощью плагина S3 Uploads (Human Made)

Перенос файлов WordPress в S3‑совместимые хранилища с помощью плагина S3 Uploads (Human Made)

16 марта 2026

Если медиа‑библиотека раздувает диск, усложняет бэкапы и мешает масштабированию, S3 Uploads закрывает задачу «вынос uploads в объектное хранилище» без лишней обвязки.

Что делает плагин

  • Заменяет локальную wp-content/uploads на хранилище S3.
  • Перехватывает загрузку и чтение медиа, работает с миниатюрами.
  • Переписывает URL‑ы на S3 (если это включено в конфиге).
  • Поддерживает приватные файлы через signed URL.

Важно: у плагина почти нет UI. Настройка — через wp-config.php, код и WP‑CLI. Это плюс для команд, которым нужен контроль, и минус для тех, кто хочет «всё в админке».

Когда подходит

  • Высоконагруженные сайты и несколько веб‑нод (stateless).
  • Kubernetes / autoscaling.
  • Экономия на egress (часто выбирают Cloudflare R2).
  • Приватные файлы (курсы, документы) со временными ссылками.
  • Миграции и переносы без хранения медиа на сервере.
  • Локальная разработка с возможностью отключать S3.

Плюсы и ограничения

Плюсы:

  • Open‑source и лёгкий.
  • Минимум «магии» и настроек в интерфейсе.
  • WP‑CLI для проверки и миграции.
  • Работает с S3‑совместимыми хранилищами через endpoint.

Ограничения:

  • Нет красивой админки.
  • Нужно руками настроить IAM и конфиг.
  • Для новичков проще WP Offload Media.

Провайдеры S3 хранилища

Облачные (managed)

  • Amazon S3 — оригинал
  • Yandex Object Storage
  • Cloudflare R2
  • DigitalOcean Spaces
  • Другие S3‑совместимые облака (по endpoint)

Self-hosted

  • MinIO
  • Ceph (RGW)
  • Любые S3‑совместимые self‑hosted решения (по endpoint)

Быстрая настройка (скелет)

  1. В облаке: бакет + IAM‑пользователь с правами на чтение/запись/листинг.
  2. Установка (рекомендуется Composer): composer require humanmade/s3-uploads
  3. Константы в wp-config.php: define( 'S3_UPLOADS_BUCKET', 'bucket-name' ); define( 'S3_UPLOADS_REGION', 'eu-central-1' ); define( 'S3_UPLOADS_KEY', 'AKIA…' ); define( 'S3_UPLOADS_SECRET', '…' );
  4. Для R2/MinIO и других не‑AWS: задайте endpoint через фильтр s3_uploads_s3_client_params (mu‑plugin).
  5. Миграция старых файлов: wp s3-uploads upload-directory wp-content/uploads uploads --verbose
  6. Проверка: wp s3-uploads verify

Вывод

S3 Uploads — хороший выбор, если нужен «инженерный» способ хранить медиа WordPress в S3: без UI, но с предсказуемым поведением и удобным WP‑CLI.

Если нужен интерфейс и настройка в один клик — обычно смотрят в сторону WP Offload Media.