Перейти к содержанию

Хранилище S3. Настройка экземпляра ПО и подключения

Введение

Внимание!

  • Работоспособность подключения Comindware Platform к S3 протестирована с со следующими службами:
    • Amazon S3
    • Yandex Object Storage
    • S3 MinIO
  • Совместимость с другими S3-подобными хранилищами не тестировалась.
  • При подключении к другим S3-подобным хранилищам необходимо учитывать их возможно неполное соответствие спецификации API Amazon S3, что может привести к ограниченной или неработоспособной интеграции.

ПО Comindware Platform может хранить загруженные пользователями и сформированные системой файлы в хранилище S3:

  • файлы, прикреплённые к атрибутам типа «Документ» и «Изображение»;
  • файлы, загруженные на странице «Темы»;
  • файлы шаблонов экспорта;
  • файлы с исходным кодом адаптеров;
  • резервные копии экземпляра ПО;
  • загруженные файлы изображений для баннеров;
  • изображения профилей аккаунтов;
  • загруженные изображения фона страниц входа и регистрации;
  • временные файлы экземпляра ПО.

Здесь представлены инструкции по настройке конфигурации экземпляра ПО под управлением Linux для подключения к хранилищу S3 с целью хранения файлов в контейнерах (корзинах) S3.

После настройки экземпляра ПО и подключения к хранилищу S3 файлы, загруженные пользователями и сформированные системой будут отправляться в хранилище S3, а в конфигурации резервного копирования можно будет указать контейнер S3 вместо пути на сервере с экземпляром ПО.

Рекомендации по настройке хранилища S3

Перед настройкой Comindware Platform настройте само хранилище S3 в соответствии с бизнес-требованиями:

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

Настройка конфигурации экземпляра ПО

Внимание!

  • Подключение к S3 с именем default можно использовать для хранения резервных копий, загруженных и временных файлов.
  • Для хранения резервных копий будет использоваться только подключение к S3 с именем default. Подключения к S3 с другими именами невозможно использовать для хранения резервных копий.
  • Имена корзин (контейнеров) должны состоять из латинских букв, точек (.) и дефисов(-), не должны содержать прописных (заглавных) букв.
  • Необходимо указать разные корзины для резервных копий, загруженных и временных файлов.
  1. Перейдите в режим суперпользователя:

    sudo -i 
  2. Откройте для редактирования файл конфигурации экземпляра ПО:

    vim /usr/share/comindware/configs/instance/<instanceName>.yml 

    Здесь  <instanceName> — имя экземпляра ПО.

    См. также статью «Пути и содержимое папок экземпляра ПО».

  3. В файле <instanceName>.yml настройте следующие директивы:

    ##### Конфигурация подключения к хранилищу S3 ##### 
    # Описание конфигурации
    # default — имя подключения, не изменять.
    s3.default.description: Подключение к S3 по умолчанию для хранения резервных копий, загруженных и временных файлов
    # Адрес и порт сервера S3.
    s3.default.endpointURL: http://<s3hostname>:<s3port>
    # Информация учетной записи. Ключ подключения к хранилищу S3.
    s3.default.accessKey: xxxxx
    # Информация учетной записи. Секретный ключ подключения к хранилищу S3.
    s3.default.secretKey: xxxxx
    # Установите значение true, если сервер принимает только запросы path-style вида:
    # https://<s3hostname>/bucket-name/key-name
    #s3.default.pathStyleAccess: true

    ##### Настройка хранения загруженных файлов #####
    # Тип хранилища (LocalDisk | S3).
    userStorage.type: S3
    # Имя корзины для хранения загруженных файлов
    userStorage.s3.bucket: <uploaded-files-bucket>
    # Имя подключения к S3
    userStorage.s3.connection: default

    ##### Настройка хранения временных файлов #####
    # Тип хранилища (LocalDisk | S3).
    tempStorage.type: S3
    # Имя корзины для хранения временных файлов.
    tempStorage.s3.bucket: <temp-files-bucket>
    # Имя подключения к S3
    tempStorage.s3.connection: default
  4. Перезагрузите экземпляр ПО:

    systemctl restart comindware<instanceName> 
  5. Проверьте соединение с хранилищем S3.

  6. Проверьте общую работоспособность интеграции с S3.

Настройка дополнительного подключения к S3

Чтобы хранить загруженные и временные файлы отдельно от резервных копий, можно подключить дополнительное хранилище S3. Имя такого подключения должно отличаться от имени подключения к S3 для хранения резервных копий.

  1. В файле конфигурации <instanceName>.yml настройте следующие директивы:

    ##### Конфигурация дополнительного подключения к хранилищу S3 ##### 
    # <s3connectionName> — задайте имя подключения.
    s3.<s3connectionName>.description: Подключение к S3 для хранения загруженных и временных файлов
    s3.<s3connectionName>.endpointURL: http://<s3hostnameForFiles>:<s3port>
    s3.<s3connectionName>.accessKey: xxxx
    s3.<s3connectionName>.secretKey: xxxx
    #s3.<s3connectionName>.pathStyleAccess: true

    #### Настройка хранения загруженных файлов ####
    userStorage.type: S3
    userStorage.s3.bucket: <uploaded-files-bucket>
    userStorage.s3.connection: <s3connectionName>

    ##### Настройка хранения временных файлов #####
    tempStorage.type: S3
    tempStorage.s3.bucket: <temp-files-bucket>
    tempStorage.s3.connection: <s3connectionName>
  2. Перезагрузите экземпляр ПО:

    systemctl restart comindware<instanceName> 
  3. Проверьте соединение с хранилищем S3.

  4. Проверьте общую работоспособность интеграции с S3.

Проверка соединения с хранилищем S3

  1. Перейдите в список подключений.
  2. Дважды нажмите в списке подключение типа «S3» (название подключения задаётся директивой s3.default.description в файле конфигурации экземпляра ПО).
  3. Просмотрите свойства подключения:

    • Отключить — этот флажок установлен, если подключение неактивно;
    • Название — наглядное наименование подключения;
    • Адрес конечной точки — адрес сервера S3;
    • Ключ доступа — идентификатор секретного ключа доступа к серверу S3;
    • Секретный ключ — ключ для доступа к серверу S3;
    • Запросы типа path-style — флажок установлен, если сервер принимает только запросы path-style вида:

      https://s3.region-code.amazonaws.com/bucket-name/key-name 
  4. Нажмите кнопку «Проверить соединение».

    • Должно отобразиться сообщение «Соединение установлено».

Внимание!

Не вносите изменения в окне свойств подключения к хранилищу S3, заданному в файле конфигурации экземпляра ПО (/usr/share/comindware/configs/instance/<instanceName>.yml) с помощью директивы s3.default или s3.<s3connectioName>. Они не будут применены к конфигурации экземпляра ПО и при перезапуске сервера будут заменены на значения из файла конфигурации <instanceName>.yml.

Настраивать подключение к хранилищу S3 следует только в файле /usr/share/comindware/configs/instance/<instanceName>.yml

Проверка общей работоспособности интеграции с S3

После настройки подключения к хранилищу S3 проверьте следующие пункты:

  • Конфигурация экземпляра ПО
    • Если требуется резервное копирование в S3, подключение к S3 с именем default правильно настроено.
    • При необходимости указаны разные корзины для резервных копий, загруженных и временных файлов.
    • Имена корзин не содержат недопустимых символов.
    • Все необходимые директивы добавлены в файл конфигурации.
  • Подключение и доступ
    • Comindware Platform успешно устанавливает соединение с хранилищем S3.
    • Предоставлен доступ к указанным корзинам с правами на чтение и запись.
    • Корректно работают virtual-hosted или path-style запросы.
  • Хранение данных
    • Файлы и резервные копии успешно сохраняются в S3.
    • Корректно настроены квоты в S3.
    • При необходимости настроено версионирование и дублирование важных данных в разные хранилища.

Устранение неполадок

  • Не удаётся установить соединение с S3
    • Проверьте правильность адреса в директиве s3.<s3connectionName>.endpointURL.
    • Убедитесь, что адрес и порт S3 доступны и не блокируются сетевым экраном или прокси-сервером.
    • Проверьте, правильно ли настроена директива s3.<s3connectionName>.pathStyleAccess.
  • Ошибка аутентификации
    • Убедитесь, что указаны правильные и действующие ключи доступа accessKey и secretKey.
    • Убедитесь, что для данных ключей в S3 предоставлены необходимые разрешения.
  • Ошибки доступа к корзинам
    • Проверьте существование указанных корзин.
    • Убедитесь в правильности политик доступа к корзинам.
    • Проверьте, не содержат ли имена корзин недопустимых символов.
  • Ошибки загрузки или скачивания файлов
    • Проверьте права доступа к корзинам.
    • Убедитесь, что не превышены квоты хранения.
  • Проблемы с резервным копированием
    • Проверьте настройки резервного копирования и подключения s3.default.
    • Убедитесь, что в корзине достаточно места.
    • Проверьте права доступа к корзине для резервного копирования.
К началу