Как хранить активы WordPress на DigitalOcean Spaces

Вступление

DigitalOcean Spaces - это сервис хранения объектов, который можно использовать для хранения больших объемов разнообразных неструктурированных данных. Сайты WordPress, которые часто включают в себя изображения и видео, могут быть хорошими кандидатами на решение для хранения объектов. Использование хранилища объектов для этих типов статических ресурсов может оптимизировать производительность сайта, освобождая пространство и ресурсы на ваших серверах. Для получения дополнительной информации о хранилище объектов и WordPress ознакомьтесь с нашим руководством поHow To Back Up a WordPress Site to Spaces.

В этом руководстве мы будем использовать плагин WordPress, который работает непосредственно с DigitalOcean Spaces, чтобы использовать его в качестве основного хранилища ресурсов. ПлагинDigitalOcean Spaces Sync направляет данные нашей медиа-библиотеки WordPress в Spaces и предоставляет вам различные варианты конфигурации в зависимости от ваших потребностей, оптимизируя процесс использования хранилища объектов с вашим экземпляром WordPress.

Предпосылки

В этом руководстве предполагается, что у вас есть экземпляр WordPress на сервере, а также пространство DigitalOcean. Если у вас нет этой настройки, вы можете выполнить следующее:

С этими необходимыми условиями мы готовы начать использовать этот плагин.

Изменение разрешений WordPress

На протяжении этого руководства мы будем работать с папкойwp-content/uploads в нашем проекте WordPress, поэтому важно, чтобы эта папка существовала и имела правильные разрешения. Вы можете создать его с помощью командыmkdir, используя флаг-p, чтобы создать папку, если она не существует, и избежать выдачи ошибки, если она есть:

sudo mkdir -p /var/www/html/wp-content/uploads

Теперь вы можете установить разрешения для папки. Во-первых, установите право собственности на своего пользователя (здесь мы будем использоватьsammy, но обязательно использовать не rootsudo пользователя), а групповое владение - для группыwww-data:

sudo chown -R sammy:www-data /var/www/html/wp-content/uploads

Затем установите разрешения, которые предоставят веб-серверу доступ на запись в эту папку:

sudo chmod -R g+w /var/www/html/wp-content/uploads

Теперь мы сможем использовать наши плагины для создания хранилища в объектном хранилище для ресурсов в папкеwp-content/uploads, а также для взаимодействия с нашими активами из интерфейса WordPress.

Установка DigitalOcean Spaces Sync

Первым шагом в использовании DigitalOcean Spaces Sync будет установка его в нашу папку WordPress. Мы можем перейти к папке плагинов в вашем каталоге WordPress:

cd /var/www/html/wp-content/plugins

Отсюда мы можем установить DigitalOcean Spaces Sync с помощью командыwp:

wp plugin install do-spaces-sync

Чтобы активировать плагин, мы можем запустить:

wp plugin activate do-spaces-sync

Отсюда мы можем перейти к вкладке плагинов в левой части нашей панели администрирования WordPress:

WordPress Plugin Tab

Мы должны увидеть DigitalOcean Spaces Sync в нашем списке активированных плагинов:

Spaces Sync Plugin Screen

Чтобы управлять настройками DigitalOcean Spaces Sync, мы можем перейти на вкладкуSettings и выбратьDigitalOcean Spaces Sync в меню:

Settings Tab

DigitalOcean Spaces Sync теперь даст нам возможность настроить хранилище наших активов:

DO Spaces Sync Configuration

ПолеConnection Settings в верхней половине экрана запрашивает ключ доступа и секрет к Spaces. Затем он запросит нашContainer, который будет именем нашего пространства, иEndpoint.

Вы можете определить конечную точку вашего пространства на основе его URL. Например, если URL-адрес вашего пространстваhttps://example-name.nyc3.digitaloceanspaces.com, тоexample-name будет вашим ведром / контейнером, аnyc3.digitaloceanspaces.com будет вашей конечной точкой.

В интерфейсе плагина разделEndpoint будет предварительно заполнен значением по умолчаниюhttps://ams3.digitaloceanspaces.com. Вы должны изменить эту конечную точку, если ваше Пространство живет в другом регионе.

Далее вам будет предложено ввестиFile & Path Settings. В поле с пометкойFull URL-path to files вы можете ввести либо публичный домен хранилища, если ваши файлы будут храниться только в вашем пространстве, либо полный URL-путь, если вы будете хранить их в своем пространстве и на сервере.

Например, если ваш проект WordPress расположен в/var/www/html, и вы хотите хранить файлы как на вашем сервере, так и в пространстве, тогда вы должны ввести:

  • http://your_server_ip/wp-content/uploads в полеFull URL-path to files

  • /var/www/html/wp-content/uploads в полеLocal path

ПараметрыStorage prefix иFilemask предварительно заполнены, и их не нужно изменять, если вы не хотите указать определенные типы файлов для синхронизации.

Мы рассмотрим особенности хранения файлов на вашем сервере и на Space и только на вашем Space в следующих разделах.

Синхронизация и сохранение файлов в нескольких местах

DigitalOcean Spaces Sync предлагает возможность сохранять файлы на вашем сервере, а также синхронизировать их с вашим пространством. Эта утилита может быть полезна, если вам нужно хранить файлы на вашем сервере, но вы также хотели бы, чтобы резервные копии хранились в другом месте. Мы пройдем процесс синхронизации файла с нашим пространством, сохраняя его на нашем сервере. Для целей этого примера мы предположим, что у нас есть файл с именемsammy10x10.png, который мы хотели бы сохранить в нашей медиа-библиотеке и в нашем пространстве.

Сначала перейдите на вкладкуSettings на административной панели WordPress и выберитеDigitalOcean Spaces Sync в меню представленных опций.

Затем в полеConnections Settings введите свой Spaces Key и Secret, а затем вашиContainer иEndpoint. Помните, что если URL вашего пространстваhttps://example-name.nyc3.digitaloceanspaces.com, тоexample-name будет вашимContainer, аnyc3.digitaloceanspaces.com будет вашимEndpoint. Проверьте свои соединения, нажав кнопкуCheck the Connection в нижней части поляConnection Settings:

Check Connection Button

Теперь мы готовы заполнитьFile & Path Settings.

В полеFull URL-path to files мы можем ввести наш полный URL-путь, поскольку мы сохраняем наш файл на нашем сервере и в нашем пространстве. Здесь мы будем использовать IP-адрес нашего сервера, но если у вас есть домен, вы можете поменять IP-адрес вашего доменного имени. Подробнее о регистрации доменов в DigitalOcean см. В нашем руководстве поHow To Set Up a Host Name with DigitalOcean. В нашем случаеFull URL-path to files будетhttp://your_server_ip/wp-content/uploads.

Затем мы заполним полеLocal path локальным путем к каталогуuploads:/var/www/html/wp-content/uploads.

Поскольку мы работаем с одним файлом, нам не нужно изменять разделыStorage prefix иFilemask. По мере увеличения размера и разнообразия вашей медиа-библиотеки WordPress вы можете изменить этот параметр, чтобы настроить таргетинг на отдельные типы файлов, используя подстановочные знаки и расширения, такие как*.png в полеFilemask.

Ваш окончательныйFile & Path Settings будет выглядеть так:

Sync Server and Cloud

Обязательно сохраните изменения конфигурации, нажав кнопкуSave Changes внизу экрана.

Теперь мы можем добавить наш файлsammy10x10.png в нашу медиатеку WordPress. Мы будем использовать командуwp media import, которая импортирует файл из нашего домашнего каталога в нашу медиатеку WordPress. В этом случае наш домашний каталог будет принадлежатьsammy, но в вашем случае это будет ваш некорневой пользовательsudo. Когда мы перемещаем файл, мы будем использовать параметр--path, чтобы указать местоположение нашего проекта WordPress:

wp media import --path=/var/www/html/ /home/sammy/sammy10x10.png

Посмотрев на наш интерфейс WordPress, мы должны теперь увидеть наш файл в нашемMedia Library. Мы можем перемещаться туда, следуя вкладкеMedia Library в левой части нашей административной панели WordPress:

Media Library Tab

Если мы перейдем на нашу страницу Spaces в панели управления DigitalOcean, мы также должны увидеть файл в нашем Space.

Наконец, мы можем перейти в нашу папкуwp-content/uploads, где WordPress создаст подпапку с годом и месяцем. В этой папке мы должны увидеть наш файлsammy10x10.png.

Хранение файлов на пространствах

Плагин DigitalOcean Spaces Sync имеет дополнительную опцию, которая позволит нам хранить файлы только на нашем Пространстве, если мы хотим оптимизировать пространство и ресурсы на нашем сервере. Мы будем работать с другим файлом,sammy-heart10x10.png, и установим наши настройки синхронизации DigitalOcean Spaces так, чтобы этот файл хранился только в нашем пространстве.

Во-первых, давайте вернемся к главной странице конфигурации плагина:

DO Spaces Sync Configuration

Мы можем оставить информациюConnection Settings, но мы изменимFile & Path Settings. Во-первых, вFull URL-path to files мы напишем общедоступное хранилище. Опять же, мы будем использовать IP-адрес нашего сервера, но вы можете заменить его на домен, если он у вас есть:http://uploads.your_server_ip

Затем мы перейдем кSync Settings внизу страницы и щелкнем первое поле, что позволит нам «хранить файлы только в облаке и удалять после успешной загрузки». Ваш окончательныйFile & Path Settings будет выглядеть так:

Sync Cloud Only

Обязательно сохраните изменения, нажав кнопкуSave Changes внизу экрана.

Вернувшись в командную строку, мы переместимsammy-heart10x10.png из домашнего каталога нашего пользователя в нашу медиатеку с помощьюwp media import:

wp media import --path=/var/www/html/ /home/sammy/sammy-heart10x10.png

Если мы вернемся к нашему интерфейсу WordPress, мы не увидимsammy-heart10x10.png илиsammy10x10.png в нашемMedia Library. Затем, если мы вернемся в командную строку и перейдем в наш каталогwp-content/uploads, мы должны увидеть, чтоsammy-heart10x10.png отсутствует в нашей подпапке с меткой времени.

Наконец, если мы перейдем на страницу Spaces на панели управления DigitalOcean, мы должны увидеть оба файла, хранящиеся в нашем Space.

Заключение

Мы рассмотрели два различных варианта, которые вы можете использовать для хранения ваших медиафайлов WordPress в DigitalOcean Spaces с помощью синхронизации DigitalOcean Spaces. Этот плагин предлагает дополнительные параметры для настройки, о которых вы можете узнать больше, прочитав статью для разработчиков «https://medium.com/@kee_ross/sync-your-wordpress-media-with-digitalocean-spaces-b730eb7e19fc[Sync your WordPress медиа с DigitalOcean Spaces]. »

Если вам нужна более общая информация о работе с Spaces, ознакомьтесь с нашимintroduction to DigitalOcean Spaces и нашим руководством поbest practices for performance on Spaces.

Related