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

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

Быстро чистим таксономии в Drupal

Апрель 24, 2025 г.

Чтобы через админку почистить длинные словари, нужно много времени, даже если вы используете bulk операции. Потому будем чистить их через код. Разберем пример кода: [crayon-69070a9fddedc970459427/] Эти две команды удаляют все термины из словаря ...

Читать

Добавляем в page cache зависимость от значения cookie

Март 4, 2025 г.

Модуль page_cache использует http_middleware, чтобы зацепиться за объект request и произвести кеширование страницы. Работает он для анонимных пользователей. ...

Читать

Инициализируем кастомную тему в Drupal

Май 12, 2025 г.

При создании новой темы у вас есть варианты выбора начиная с того, чтобы взять готовую тему (и начать её менять под ваши задачи) до создания новой темы ...

Читать

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

Апрель 6, 2025 г.

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

Читать
 

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

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



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

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

  1. Borchun:

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

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