Интеграция S3-хранилища в файловый менеджер Joomla

    Подключение облачного хранилища S3 (например, Yandex Object Storage) к CMS Joomla позволяет загружать изображения напрямую из бакета на сайт, минуя локальный сервер. Это ускоряет работу сайта, снижает нагрузку на хостинг и упрощает управление медиафайлами. В этой статье мы разберём, как реализовать интеграцию с помощью плагинов Media Manager и AS3 Cloud File Manager, чтобы облачные папки отображались в админ-панели Joomla как локальные.

    Зачем подключать S3-хранилище к Joomla?

    Использование объектного хранилища (S3-совместимого) даёт ряд преимуществ:

    • Экономия дискового пространства на хостинге - все медиафайлы хранятся в облаке.
    • Высокая скорость загрузки - контент доставляется через CDN облачного провайдера.
    • Автоматическое резервирование - данные не пропадут при сбое сервера.
    • Удобство работы - папки и файлы из бакета видны прямо в файловом менеджере Joomla.

    Какой плагин выбрать: Media Manager или AS3 Cloud File Manager?

    Плагин Media Manager (Joomla 4+)

    Начиная с Joomla 4, встроенный медиа-менеджер поддерживает внешние адаптеры, включая S3-совместимые хранилища. Для подключения Yandex Object Storage потребуется установить расширение Media Manager S3 Adapter (например, от сторонних разработчиков). После установки в настройках укажите:

    • Endpoint - https://storage.yandexcloud.net
    • Bucket - имя вашего бакета в Yandex Cloud
    • Access Key и Secret Key - из сервисного аккаунта Yandex
    • Region - ru-central1 (или другой регион)

    После сохранения в медиа-менеджере появится новая вкладка с содержимым бакета. Папки и файлы будут отображаться как локальные, и вы сможете вставлять их в статьи, создавать фотогалереи через стандартные модули (например, Mod_Gallery).

    Плагин AS3 Cloud File Manager

    Этот плагин (ранее назывался Amazon S3 Cloud File Manager) поддерживает любое S3-совместимое хранилище, включая Yandex Object Storage. Он добавляет в админ-панель Joomla отдельный раздел «Cloud Files», где можно просматривать бакеты, загружать и удалять файлы. Настройка аналогична:

    • Укажите Service Endpoint - https://storage.yandexcloud.net
    • Введите Access Key и Secret Key
    • Выберите бакет по умолчанию

    Плагин позволяет прикреплять файлы из облака к материалам через кнопку в редакторе. Однако для автоматического отображения папок в стандартном файловом менеджере Joomla может потребоваться дополнительный мост (например, CloudFS).

    Пошаговая инструкция подключения Yandex Object Storage к Joomla

    Выполните следующие шаги:

    1. Создайте бакет в Yandex Object Storage и настройте публичный доступ на чтение (если изображения должны отображаться на сайте).
    2. Сгенерируйте ключи доступа в сервисном аккаунте Yandex Cloud с правами на хранилище.
    3. Установите плагин (Media Manager S3 Adapter или AS3 Cloud File Manager) через менеджер расширений Joomla.
    4. Введите параметры подключения: Endpoint, Bucket, Access Key, Secret Key, Region.
    5. Проверьте соединение - в медиа-менеджере должны появиться файлы из бакета.
    6. Используйте изображения в статьях, модулях галерей или прямо в редакторе.

    Возможные проблемы и их решение

    Если папки не отображаются, проверьте:

    • Правильность ключей доступа (должны быть активны).
    • Настройки CORS в бакете (разрешите методы GET, HEAD для домена сайта).
    • Версию PHP - для S3-адаптеров требуется PHP 7.4+.
    • Наличие модуля curl на сервере.

    Если вы используете плагин AS3, убедитесь, что в его настройках включена опция «Show in Media Manager» - тогда облачные папки появятся в стандартном файловом менеджере Joomla.

    Создание фотогалереи из облачных папок

    После интеграции вы можете использовать любой модуль галереи, поддерживающий внешние источники. Например:

    • Joomla Gallery - выберите источник «Cloud Folder» и укажите путь к бакету.
    • Phoca Gallery - через плагин S3-адаптер.
    • Simple Image Gallery - вставьте код с прямыми ссылками на файлы из бакета.

    Главное - чтобы у файлов был публичный URL (например, https://storage.yandexcloud.net/ваш-бакет/папка/фото.jpg).

    Часто задаваемые вопросы