Подключаем yandex cloud как s3 в Drupal

Облачные файловые хранилища Яндекса можно подключить и использовать в вашем проекте на drupal через модуль s3fs. А именно, хранить там т.н. юзерфайлы, разгрузив дисковое пространство веб-хостинга.

Для начало создаёте облачное хранилище на yandex.cloud — нужен сервис типа object storage. Пока вы не превысите определенную квоту, это будет бесплатно и вы успеете протестировать и отладить подключение.

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

Вот типичные настройки прав при создании бакета:

Как видите, я не дал публичных прав доступа, ограниченного доступа будет достаточно. На фронт-енд ссылки на ваш медиа контент будут выглядеть как и должны:

Т.е. домен — storage.yandexcloud.net, моё имя бакета — gp2 и далее идет уже путь объекта в бакете.

Конечно, потребуется еще настроить s3fs, чтобы добиться такого результата.

Настройки S3FS для Yandex.Cloud

Установите/активируйте s3fs модуль.

Часть настроек сделаем через settings.php. При создании облака вы должны были получить необходимые ключи (access и secret).

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

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

/admin/config/media/s3fs

Перейдем в админку и настроим еще ряд параметров:

Т.к. у облако у нас не на Amazon — требуется указать имя сервера яндекс-облака. Следующую за ним галку тоже стоит поставить.

Чтобы всегда использовать протокол https для объектов облака, чекнем еще одну галку:

Дополнительно уделите внимание названию корневых папок бакета. По умолчанию s3fs предлагает немного другие названия, чем те, что привычно используются локально.

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

Ранее созданные локальные медиа-файлы можно мигрировать, используя s3fs_migrate модуль.

Мало букафф? Читайте есчо !

Форматирование дат в Twig на Drupal 10/11: date и format_date() с примерами

Август 8, 2025 г.

В Drupal 10/11 при работе с шаблонами Twig часто требуется вывести дату в нужном формате — будь то текущая дата, дата из поля сущности или timestamp. Для этого можно использовать стандартный Twig-фильтр date, а также функцию format_date(). В этой статье ...

Читать

Убираем вставку   в пустые div контейнеры в CKEditor 5

Апрель 9, 2025 г.

Неприятная особенность CKEditor - добавляет в пустые контейнера (в <div>,<p> и т.п.) html код неразрывного пробела. Покажу как можно от этого избавиться через код в кастомном плагине для CKEditor 5 в экосистеме Drupal 8+. Нам понадобится ...

Читать

Эффективное кеширование по доступу к ноде: параметрический Cache Context в Drupal

Июль 26, 2025 г.

Когда мы используем кеширование в Drupal, типичный подход — добавить user в список контекстов: ['user']. Это означает, что для каждого пользователя будет ...

Читать

Кастомные настройки сайта в Drupal

Март 9, 2025 г.

На сайте всегда (или почти всегда) возникает задача управления настройками вроде телефон, email, какие то текстовые элементы, вроде копирайта, адрес организации и т.п. С точки зрения данных - требуется объект в терминах шаблонов проектирования - синглтон. ...

Читать
 

Комментарии к «Подключаем yandex cloud как s3 в Drupal»

Понравилась статья? Есть вопросы? - пишите в комментариях.



Комментарий:

Много комментариев в “Подключаем yandex cloud как s3 в Drupal”

  1. Borchun:

    Добрый день. Не совсем разобрался как можно загружать некоторые файлы в облако, а не только лишь все. Или что бы был выбор, что грузим что не грузим. Такое возможно?

    • Речь идет о хранилище всех т.н. юзер-файлов, которые содержатся в папке /sites/default/files. Модуль s3fs разделяет только public и private файлы. Т.е. конкретное медиа поле нельзя настроить — можно всё или ничего.