Сегодня один из тех радостных дней в истории нашей Компании, когда мы хотим поделиться с вами новостью о выпуске нового продукта. Давно собирались разработать плагин, который позволял бы хранить медиа файлы на удаленном сервере. Встречайте наше новое творение под названием «Удаленное хранилище» или «Облачное хранилище»; плагин, который позволяет снять нагрузку с основного сервера и перенести хранение фото и видео файлов объявлений и аватарок пользователей на облачный сервер.

Для того, чтобы вы могли лучше понять, как работает новый плагин «Удаленное хранилище» было бы хорошо припомнить, как работает система обработки изображений в базовой версии.

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

В зависимости от настроек планов и пакетов на вашем сайте одно объявление может содержать 5 — 10 и большее фотографий. Теперь умножьте количество фотографий на количество созданных копий и средний размер файла, и средний размер мультимедийного стека может составить от 500 килобайт до нескольких мегабайт для одного объявления, и это без учета видео файлов, которые могут быть подгружены пользователями к объявлениям.

Чем больше объявлений на сайте, тем больше дискового пространства потребуется для хранения фотографий и видео файлов. Для увеличения дискового пространства может потребоваться переход на более дорогостоящий хостинг план, что не всегда рационально, так как с увеличением дискового пространства вы получаете избыточные параметры сервера, которые не планировали покупать изначально.

На помощь нам приходит удалённое хранение медиа файлов в облачном хранилище на основе протокола S3 от компании «Амазон». Метод хранения отличается:

  • простотой использования;
  • неограниченным пространством для хранения;
  • относительной дешевизной облачных решений;
  • большим количеством предложений на рынке.

Тот факт, что все компании, предлагающие облачные решения, взымают плату только за трафик между клиентами и медиа файлами в облаке, делает хранение файлов в облаке еще более привлекательным. Это позволяет держать расходы на хостинг услуги на приемлемом уровне.

Как работает плагин Удалённое хранилище?

Работа Плагина в пользовательском интерфейсе практически не заметна обычному пользователю за исключением скорости загрузки изображений. Как показывает практика, при грамотном выборе облачного сервера, который будет максимально приближен к вашим пользователям, скорость загрузки медиа файлов может повыситься. В целом все манипуляции с медиа файлами происходят “под капотом” Плагина.

Для того, чтобы Плагин начал работать, необходимо выбрать облачный сервис, которым вы желаете пользоваться, и получить два ключа — access key ID и secret access Key. Большинство компаний, предлагающих облачный хостинг, работают на условно-бесплатной основе. Т.е. вы создаете учетную запись, привязываете свою карту к учётке и начинаете пользоваться сервисом пока не исчерпаете выделенный вам лимит. Средства на услуги облачного хранения с вас начнут снимать после исчерпания лимита.

После получения ключей вы идете в панель администратора доски объявлений Флайнекс, в раздел «Плагины». Устанавливаете плагин «Удалённое хранилище» и создаете бакет, или «ведро» по-русски, в которое Плагин будет «сливать» все ваши медиа файлы. Далее вводите название бакета, выбираете регион расположения бакета; как мы писали ранее, выбирайте сервер, который расположен ближе к вашим потенциальным клиентам для ускорения загрузки медиа данных, вводите полученные ранее ключи и жмете » Добавить». Всё, бакет готов к приему файлов.

После создания объявления пользователем Плагин переместит фото и видео файлы на облачный сервер и перезапишет путь к файлу. Наш скрипт доски объявлений в базовой конфигурации генерирует следующий тип ссылок для фото:

http://domain.com/files/03-2023/ad132/rerum-dolor-consequat-sapiente-amet-nostrud-volu-2033771382_large.jpg

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

https://s3.eu-west-2.amazonaws.com/domain.com-6412f5f656258/listings/03-2023/ad132/rerum-dolor-consequat-sapiente-amet-nostrud-volu-2033771382_large.jpg

Таким образом, в объявлении будут перезаписаны пути к фото и видео файлам, и при повторном просмотре объявлений медиа файлы будут грузиться уже с удалённого облачного сервера, а не с основного. Плагин работает только с изображениями и видео файлами, подгруженными к объявлению, а также с миниатюрами пользователей.

Мы постарались максимально защитить вас от потери данных, так как потеря медиа файлов для объявлений достаточно критичная проблема. Поэтому при удалении бакета Администратором, Плагин предложит вернуть все имеющиеся файлы на основной сервер. И после переноса файлов из бакета обратно на сервер Плагин сам удалит бакет из облачного хранилища. Поэтому не стоит делать какие-либо изменения в бакете непосредственно через консоль облачного хранилища (изменение файлов, изменение прав доступа к бакету и т.д.), так как это может привести к потере связи и соответственно данных.

Стоит ли делать резервную копию перед переездом на облако?

Если ваш хостинг позволяет сделать резервную копию файлов, то мы настоятельно рекомендуем сделать резервную копию файлов, если ваш сайт уже работает какое-то время, и вы желаете перенести файлы уже добавленных объявлений. Рекомендуем сделать резервную копию до переноса на удалённый сервер и по возвращению файлов с удалённого сервера на основной. Существует несколько факторов, которые могут повлиять на безопасность переезда, среди них:

  • сбой связи во время обработки файлов;
  • непредвиденное обстоятельство на сервере;
  • хакерская атака.

Резервные бакеты

Плагин позволяет вам создать один или несколько резервных бакетов, если не сработает основной бакет. Менеджер также позволяет вам отслеживать количество файлов, содержащихся в каждом бакете.

Когда может понадобиться «Удалённое хранилище»?

Существует два сценария, при которых становиться актуально применение плагина Удалённое хранилище. Давайте рассмотрим их:

1. Ваша база данных активно “разрастается”, и вы превысили лимит дискового пространства;

2. Вы изначально решили перенести хранение медиа файлов в облако, чтобы не нагружать основной сервер.

О чем нельзя забывать при работе с облачным хранилищем?

При использовании Плагина вы должны чётко понимать:

  • ценовую политику хранения файлов на выбранном вами облачном хранилище;
  • файлы будут храниться на стороннем сервере, и их копии не будут хранится на этом сервере;
  • при удалении бакета в консоли облачного хранилища, все файлы будут безвозвратно потеряны;
  • при несвоевременной оплате за бакет, файлы также могут быть удалены;
  • при удалении плагина без предварительной миграции файлов обратно на этот сервер, файлы могут быть потеряны;
  • при переносе большого количества файлов обратно на этот сервер, убедитесь, что на сервере имеется достаточно места.

Какие облачные провайдеры поддерживает Плагин?

Конечно, решения облачного хранения представлены в большом ассортименте на просторах Интернета, но мы на данном этапе интегрировали пока только 5 самых известных, которых, как мы полагаем, будет вполне достаточно для первой версии.

  • Amazon S3, классический S3 от Amazon
  • DigitalOcean Spaces
  • Wasabi Hot Cloud Storage
  • VK Cloud Storage
  • Yandex Object Storage

Мы полагаем, что плагин «Удалённое хранилище» станет хорошим помощником в деле файловой оптимизации на вашей доске объявлений. Он позволит разгрузить основной сервер и возможно ускорить загрузку медиа файлов, а также избежать нежелательных расходов на хостинг услуги. Плагин очень прост в настройке. Будучи настроен один раз, Плагин будет исправно работать в автоматическом режиме, незаметно для вас выполняя свою важную работу. Даже если вы передумаете использовать плагин «Удалённое хранилище» в определённый момент, вы сможете легко и просто вернуть файлы на основной сервер. Плагин «Удалённое хранилище» — это серьезная помощь большому проекту.