Хранение медиа-файлов WordPress в S3-хранилище

Оцените статью

В продолжении перевода своих ресурсов в облака следующим этапом необходимо настроить хранение медиа-файлов WordPress в хранилище S3 в облаке Cloud.ru. Задачка довольно типовая, но есть нюансы.

Прежде всего зарегистрируем сервисный ключ доступа к S3 хранилищу и собственно само хранилище

И кстати, обратите внимание, что у Cloud.ru первые 10гб не тарифицируются.

Сервисный аккаунт S3

Задаем осмысленное наименование аккаунта, описание на будущее и уровень аккаунта (Организация).

Ограниченные права доступа

Назначаем ограниченные права доступа на работу только с хранилищем и доступ на чтение-запись.

Создание ключа доступа

Ключ и пароль обязательно сохраняем их больше нигде не покажут.

Создание объектного хранилища S3

Переходим в раздел Evolution -> Object Storage.

Создать бакет

Создаем бакет. Обязательно обратите внимание на требования к глобальному наименованию.

Получаем данные по доступу к бакету в разделе Object Storage API.

Настройка внешнего доступа к файлам в формате CDN для чего в настройка бакета перейдите в раздел «Хостинг сайта» и выберите «Настройка публичного доступа».

Настройка публичного доступа

Открываем публичный доступ к бакету на чтение для всех объектов.

Открываем публичный доступ к бакету.

Назначаем бакету доменное имя в настройках бакета.

Доменное имя бакета.

В настройках хостинг сайта задайте «Главную страницу». Это может быть любой файл, иначе хостинг работать не будет.

Задайте главную страницу сайта.

Соответственно файлы будут доступны по адресу https://interlan.s3-website.cloud.ru и пробуем получить доступ к файлу. Если файл доступен по требуемому адресу, то можно приступать к подключению хранилища (для проверки) и переносу медиа-файлов в хранилище.

Подключаем хранилище

Для тестового подключения S3-бакета воспользуемся инструкцией которую я написал в рамках прохождения курса от Cloud.ru.

Скачиваем и активируем плагин Advanced Media Offloader.

Advanced Media Offloader

Переходим в настройки плагина.

Переходим в настройки плагина

В настройка для Cloud.ru есть несколько нюансов.

  • Cloud Provider: Any S3‑Compatible Storage (MinIO, OVHcloud, …)
  • Provider Name — S3
  • Access Key ID — Tenant.KEY ID
  • Secret Access Key — KEY SECRET
  • S3 Endpoint URL — https://s3.cloud.ru
  • Region — Регион размещения бакета
  • Use Path-Style Endpoint — Включено
  • Bucket Name — Имя бакета
  • Custom Domain (CDN URL) — CDN полученный при задании домена

Запуск синхронизации из WP-CLI

Для обработки большого количества файлов удобно использовать консольную утилиту wp-cli. Давайте рассмотрим как ей пользоваться применительно к докеризованной версии Word Press.

Подключаемся к консоли WP в докер для чего сначала находим интересующий нас контейнер.

$ docker ps
CONTAINER ID   IMAGE              COMMAND                  CREATED          STATUS         PORTS                                                                          NAMES
0a3bc2fe4013   nginx:alpine       "/docker-entrypoint.…"   48 minutes ago   Up 2 minutes   0.0.0.0:80->80/tcp, [::]:80->80/tcp, 0.0.0.0:443->443/tcp, [::]:443->443/tcp   interlanxyz-nginx-1
2993eb5bde36   wordpress:latest   "docker-entrypoint.s…"   48 minutes ago   Up 2 minutes   80/tcp                                                                         interlanxyz-interlan-wordpress-1
0c222f7fc7fd   redis:alpine       "docker-entrypoint.s…"   48 minutes ago   Up 2 minutes   6379/tcp                                                                       interlanxyz-redis-1
e0cfbc40d482   mysql:8.0          "docker-entrypoint.s…"   48 minutes ago   Up 2 minutes   0.0.0.0:3306->3306/tcp, [::]:3306->3306/tcp                                    interlanxyz-mysql-db-1

Подключаемся к интерактивному терминалу и перелогиниваемся в пользователя www-data.

$ docker exec -it 2993eb5bde36 /bin/bash
# su www-data -s /bin/bash

Устанавливаем утилиту управления wp.

$ curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
$ chmod +x wp-cli.phar
$ mv wp-cli.phar ./wp

Запускаем обработку.

$ ./wp advmo offload

Все доступные команды можно посмотреть на официальном сайте.

Похожие записи

Резервное копирование баз данных MySQL в Linux: краткое руководство с примерами

Резервное копирование — ключевой элемент стратегии обеспечения безопасности и надёжности данных. Для баз данных MySQL, которые широко используются в веб-разработке и других областях, регулярное создание резервных копий особенно важно. В…

Клонирование работающего Linux-сервера с помощью rsync (немного из практики).

Клонирование живого (работающего) Linux-сервера — задача, которая часто возникает при создании резервной копии, переносе системы на новое оборудование или подготовке «горячего» запасного сервера (дурка еще та и именно для подготовки…

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Читать еще статьи

Резервное копирование баз данных MySQL в Linux: краткое руководство с примерами

Резервное копирование баз данных MySQL в Linux: краткое руководство с примерами

Клонирование работающего Linux-сервера с помощью rsync (немного из практики).

Клонирование работающего Linux-сервера с помощью rsync (немного из практики).

Установка Keycloak в Ubuntu 24.04: от тестового запуска до production-конфигурации

Установка Keycloak в Ubuntu 24.04: от тестового запуска до production-конфигурации

Оптимизация хранения медиафайлов WordPress: перенос в облачное S3-хранилище Cloud.ru

Оптимизация хранения медиафайлов WordPress: перенос в облачное S3-хранилище Cloud.ru

Настройка ProxySQL для распределения запросов в кластере MySQL

Настройка ProxySQL для распределения запросов в кластере MySQL

Конфигурация MySQL для микро-vps (минимизация потребления памяти)

Конфигурация MySQL для микро-vps (минимизация потребления памяти)