Подключаем 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 модуль.

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

Проброс переменных из PHP в JS (в Drupal) с использованием js_settings_alter

Ноябрь 14, 2025 г.

В этой статье мы рассмотрим, как пробросить данные из PHP в JavaScript в Drupal 11 с использованием js_settings_alter(). Этот метод позволяет изменять или добавлять переменные в объект drupalSettings, который доступен в JavaScript на всех страницах. ...

Читать

Добавляем кнопку регистрации на форму авторизации

Декабрь 23, 2025 г.

В этой статье мы рассмотрим, как добавить кнопку "Register" в форму авторизации в Drupal, которая будет перенаправлять пользователя на страницу регистрации. ...

Читать

Использование модального диалога в Drupal

Январь 13, 2026 г.

В комплекте Drupal включает в себя jquery dialog, который можно подключить и использовать для ваших целей на фронт-енд. Эта статья о том, как это быстро сделать и начать собственно использовать в своей теме оформления. Типичная тема представляет ...

Читать

Drupal: шаблоны для taxonomy_term и view mode — как добавить?

Июль 19, 2025 г.

При работе с таксономией в Drupal нередко возникает потребность отображать термины по-разному в зависимости от контекста. Например, один и тот же термин в режиме teaser должен выводиться компактно, а в режиме full — с подробным описанием. Если вы используете ...

Читать
 

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

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



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

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

  1. Borchun:

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

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