Как подключить в minishop2 облачные источники для изображений?

Добрый день, коллеги!
Поделитесь успешным опытом, получилось ли у вас хранить файлы изображения товаров в облаке?

Пробовал следующие способы:
— Штатный коннектор к Amazon S3: при загрузке изображений ошибка «Передан пустой файл» и больше ничего.
— Дополнение Swift с modstore.pro (подключался к selectel), но он не соединяется совсем, поддержка отвечает, что проблема на стороне модуля. Последнее обновление два года назад, в репозитории Василия.

Окружение: PHP 7.3.12; modX 2.7.3; minishop2 2.5.0

Какие ещё есть варианты?
Посоветуйте, пожалуйста, что лучше использовать.

UPD: Решение найдено!

Итак, методом эмпирических исследований был выявлен набор параметров при которых работает корректно на моём окружении. Ни в одной инструкции подобного описания не нашёл. Надеюсь поможет сэкономить вам недели тщетных поисков.

Удачная последовательность действий следующая:
1. При создании источника выбираем OpenStack Object Storage
2. Указываем следующие значения в настройках:
url: 400123.selcdn.ru/test/
container: test
authentication_service: https://api.selcdn.ru/v2.0/ (ни какие другие варианты не сработали (!))
service: ru-1 (важно для selectel)
username: <selectel_username>
api_key: <selectel_password>
{ всё остальное по-умолчанию }

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

3. Для корректного отбражения превью в админке и изображений на сайте, важно указать следующие параметры:
basePathRelative: Да (тип Да/Нет)
baseUrlRelative: Да (тип Да/Нет)

4. Для «нарезки» изображений, не забудьте указать поле
thumbnails: [{"w":120,"h":90,"q":90,"zc":"1","bg":"FFFFFF"},{"w":800,"h":800,"q":90,"zc":"1","bg":"FFFFFF"}]
(как пример, у вас скорее всего набор форматов будет другой)

Всем удачи!
Иван
10 мая 2020, 11:41
modx.pro
2
834
0

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

srs
srs
10 мая 2020, 11:52
0
1) Вы уверенны, что настроили компонент верно?
2) В логах что-то есть?
    Иван
    10 мая 2020, 15:32
    0
    1). Да. Абсолютно. Сложно сказать, как в этом убедиться, но при тех же настройках используя десктопные клиенты, всё нормально подключается.
    2). С Amazon S3 абсолютно ничего, а в случае со Swift это:
    Could not authenticate: Client error response
    [status code] 401
    [reason phrase] Unauthorized
    [url] auth.selcdn.ru/tokens
    Тех поддержка selectel разводитт руками. Говорят изучайте протокол и исправляйте ошибки.
    Иван
    17 мая 2020, 18:35
    0
    Подскажите, пожалуйста, верные ли я использую настройки для селектел?

    Пробовал два варианта подключения:

    1. Тип источника: Rackspace Object Storage
    =========================
    url: 400123.selcdn.ru/test/
    container: test
    service: ru-1
    authentication_service: api.selcdn.ru/auth/v1.0
    username: <selectel_username>
    api_key: <selectel_password>

    { всё остальное по-умолчанию }

    2. Тип источника: Amazon S3
    =========================
    url: s3.selcdn.ru
    bucket: test
    key: <selectel_username>
    secret_key: <selectel_password>
    region: ru-1a

    { всё остальное по-умолчанию }

    Разумеется, есть активный аккаунт selectel 400123 где создан контейнер test
    для котрого создан пользователь с именем <selectel_username> и паролем <selectel_password>
    выданы полномочия на чтение и запись.

    Что может быть не так с настройками?
    Подскажите, у кого работает.
      Иван
      30 мая 2020, 13:24
      +1
      Решение проблемя я нашёл. Спасибо всем кто пытался помочь. Указал перечень действий и параметров в основном тексте после UPD. Всем удачи!
        Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
        4