Публикую актуальную на 2024 год инструкцию по настройке облачного хранилища для провайдера Selectel. Selectel в 2023 году переделал интерфейсы и управление доступом к ресурсам, поэтому старые инструкции для новых пользователей Selectel не работают.
, пополняем баланс на 100 р.
По адресу
создаем сервисного пользователя с ролью "Администратор объектного хранилища"
Переходим в настройки пользователя {user uid}
и выдаем ему S3-ключ на проект с объектным хранилищем.
Далее со стороны Битрикс необходимо перейти в раздел "Облачные хранилища" и нажать кнопку "Добавить".
Во вкладке "Подключение" заполняем поля:
Активность: {важно чекбокс снять!!!}
Сортировка: 500
Провайдер: S3 compatible storage
Регион: {поле осталось пустым}
Имя сервера (API host): s3.ru-1.storage.selcloud.ru
Ключ доступа: {Access S3-ключ}
Секретный ключ: {Secret S3-ключ}
Подключаться с использованием https: {чекбокс отмечен}
Контейнер: {оставить то, что подставилось автоматически}
Только для чтения: {чекбокс снят}
Каноническое имя домена (CNAME): {поле оставляем пустым}
Нажимаем "Применить".
Первый раз вышло сообщение "Ошибка добавления контейнера: нераспознанный ответ службы (ошибка #3)."
Настоящая ошибка выглядела так "Error establishing an SSL connection".
Поймал настоящую ошибку, изменив в файле bitrix/modules/clouds/classes/general/storage_service_s3.php
массив для записи в лог. И в файле init.php включил логирование запросов к провайдеру с помощью константы
define('BX_CLOUDS_TRACE', true);
Для исправления ошибки "Error establishing an SSL connection", открыл в браузере
и экспортировал все сертификаты из цепочки.
Сертификаты на сервере с сайтом добавил в доверенные.
После добавления сертификатов в доверенные ошибка ушла. Подключение сохранилось и в Selectel контейнер создался.
В Selectel контейнер создается как приватный.
Переходим в контейнер на вкладку "Конфигурация" {storage uid}/containers/ru-1/{имя контейнера}/configuration, делаем контейнер публичным.
После того как сделали контейнер публичным, рядом на вкладке "Домены", появляется ссылка на публичный домен.
https://{контейнер uid}.selstorage.ru
Копируем публичный домен без https:// в поле "Каноническое имя домена (CNAME)" на вкладке "Подключение" в Битриксе, которое ранее оставили пустым.
Когда поле Каноническое имя домена (CNAME) не заполнено, битрикс формирует ссылки такого вида:
{название контейнера}/{путь до файла}, по которым доступ к файлу запрещен.
Когда в поле Каноническое имя домена (CNAME) вписываем публичный домен, который предоставляет Selectel, то ссылки становятся
https://{публичный домен контейнера}/{путь до файла} и файлы начинают скачиваться.
Переходим на вкладку "Правила". По умолчанию там правило с пустыми полями. Заполняем значения в полях.
Если оставить пустыми, то после активации подключения в хранилище полетят ВСЕ новые файлы.
Сохраняем.
В списке подключений , когда все согласования пройдены,
у подключения в контекстном меню нажимаем "Активировать", далее "Переместить файлы в облачное хранилище".
Ждем перемещения, после этого сбрасываем кэш сайта.
, пополняем баланс на 100 р.
По адресу
создаем сервисного пользователя с ролью "Администратор объектного хранилища"
Переходим в настройки пользователя {user uid}
и выдаем ему S3-ключ на проект с объектным хранилищем.
Далее со стороны Битрикс необходимо перейти в раздел "Облачные хранилища" и нажать кнопку "Добавить".
Во вкладке "Подключение" заполняем поля:
Активность: {важно чекбокс снять!!!}
Сортировка: 500
Провайдер: S3 compatible storage
Регион: {поле осталось пустым}
Имя сервера (API host): s3.ru-1.storage.selcloud.ru
Ключ доступа: {Access S3-ключ}
Секретный ключ: {Secret S3-ключ}
Подключаться с использованием https: {чекбокс отмечен}
Контейнер: {оставить то, что подставилось автоматически}
Только для чтения: {чекбокс снят}
Каноническое имя домена (CNAME): {поле оставляем пустым}
Нажимаем "Применить".
Первый раз вышло сообщение "Ошибка добавления контейнера: нераспознанный ответ службы (ошибка #3)."
Настоящая ошибка выглядела так "Error establishing an SSL connection".
Поймал настоящую ошибку, изменив в файле bitrix/modules/clouds/classes/general/storage_service_s3.php
массив для записи в лог. И в файле init.php включил логирование запросов к провайдеру с помощью константы
define('BX_CLOUDS_TRACE', true);
Для исправления ошибки "Error establishing an SSL connection", открыл в браузере
и экспортировал все сертификаты из цепочки.
Сертификаты на сервере с сайтом добавил в доверенные.
После добавления сертификатов в доверенные ошибка ушла. Подключение сохранилось и в Selectel контейнер создался.
В Selectel контейнер создается как приватный.
Переходим в контейнер на вкладку "Конфигурация" {storage uid}/containers/ru-1/{имя контейнера}/configuration, делаем контейнер публичным.
После того как сделали контейнер публичным, рядом на вкладке "Домены", появляется ссылка на публичный домен.
https://{контейнер uid}.selstorage.ru
Копируем публичный домен без https:// в поле "Каноническое имя домена (CNAME)" на вкладке "Подключение" в Битриксе, которое ранее оставили пустым.
Когда поле Каноническое имя домена (CNAME) не заполнено, битрикс формирует ссылки такого вида:
{название контейнера}/{путь до файла}, по которым доступ к файлу запрещен.
Когда в поле Каноническое имя домена (CNAME) вписываем публичный домен, который предоставляет Selectel, то ссылки становятся
https://{публичный домен контейнера}/{путь до файла} и файлы начинают скачиваться.
Переходим на вкладку "Правила". По умолчанию там правило с пустыми полями. Заполняем значения в полях.
Если оставить пустыми, то после активации подключения в хранилище полетят ВСЕ новые файлы.
Сохраняем.
В списке подключений , когда все согласования пройдены,
у подключения в контекстном меню нажимаем "Активировать", далее "Переместить файлы в облачное хранилище".
Ждем перемещения, после этого сбрасываем кэш сайта.