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

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

VK Video: интегрируем как oembed provider source в Drupal

Апрель 12, 2025 г.

Еще один oembed провайдер, который мне понадобился не давно - VK VIDEO. Нужно было интегрировать видео с ВКонтакте в медиа библиотеку Drupal. Если ...

Читать

Рендер произвольного блока в Drupal 11

Март 13, 2025 г.

Если не хочется объявлять дополнительный регион, чтобы настроить вывод блока через админку, то можно сделать рендер блока программно. Например добавим в препроцессинг страницы переменную с рендером блока branding. Этот блок предоставляется модулем ...

Читать

Добавление произвольных требований при установке модуля в Drupal

Май 7, 2025 г.

Иногда модуль в Drupal требует наличия специфических сущностей или конфигураций, например — определённого текстового формата. Поскольку текстовые форматы являются конфигурационными сущностями (entities), напрямую указать их как зависимость в .info.yml ...

Читать

Как получить определения из конфигурационных файлов схем Drupal

Апрель 6, 2025 г.

Drupal config API позволяет не только прочитать сами настройки, но и файлы их определений. В общем то это очевидно, покажу как это делается. Допустим ...

Читать
 

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

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



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

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

  1. Borchun:

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