Хранилище 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 с другими именами невозможно использовать для хранения резервных копий. - Имена корзин (контейнеров) должны состоять из латинских букв, точек (.) и дефисов(-), не должны содержать прописных (заглавных) букв.
- Необходимо указать разные корзины для резервных копий, загруженных и временных файлов.
- Сведения о назначении имени корзины для резервного копирования см. в статье «Резервное копирование. Настройка, запуск и просмотр журнала сеансов».
- Имена корзин для загруженных и временных файлов назначаются в файле конфигурации, как указано ниже.
-
Перейдите в режим суперпользователя:
sudo -i
-
Откройте для редактирования файл конфигурации экземпляра ПО:
vim /usr/share/comindware/configs/instance/<instanceName>.yml
Здесь
<instanceName>
— имя экземпляра ПО.См. также статью «Пути и содержимое папок экземпляра ПО».
-
В файле
<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
-
Перезагрузите экземпляр ПО:
systemctl restart comindware<instanceName>
-
Проверьте соединение с хранилищем S3.
- Проверьте общую работоспособность интеграции с S3.
Настройка дополнительного подключения к S3
Чтобы хранить загруженные и временные файлы отдельно от резервных копий, можно подключить дополнительное хранилище S3. Имя такого подключения должно отличаться от имени подключения к S3 для хранения резервных копий.
-
В файле конфигурации
<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>
-
Перезагрузите экземпляр ПО:
systemctl restart comindware<instanceName>
-
Проверьте соединение с хранилищем S3.
- Проверьте общую работоспособность интеграции с S3.
Проверка соединения с хранилищем S3
- Перейдите в список подключений.
- Дважды нажмите в списке подключение типа «S3» (название подключения задаётся директивой
s3.default.description
в файле конфигурации экземпляра ПО). -
Просмотрите свойства подключения:
- Отключить — этот флажок установлен, если подключение неактивно;
- Название — наглядное наименование подключения;
- Адрес конечной точки — адрес сервера S3;
- Ключ доступа — идентификатор секретного ключа доступа к серверу S3;
- Секретный ключ — ключ для доступа к серверу S3;
-
Запросы типа path-style — флажок установлен, если сервер принимает только запросы path-style вида:
https://s3.region-code.amazonaws.com/bucket-name/key-name
-
Нажмите кнопку «Проверить соединение».
- Должно отобразиться сообщение «Соединение установлено».
Внимание!
Не вносите изменения в окне свойств подключения к хранилищу 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
правильно настроено. - При необходимости указаны разные корзины для резервных копий, загруженных и временных файлов.
- Имена корзин не содержат недопустимых символов.
- Все необходимые директивы добавлены в файл конфигурации.
- Если требуется резервное копирование в S3, подключение к S3 с именем
- Подключение и доступ
- Comindware Platform успешно устанавливает соединение с хранилищем S3.
- Предоставлен доступ к указанным корзинам с правами на чтение и запись.
- Корректно работают
virtual-hosted
илиpath-style
запросы.
- Хранение данных
- Файлы и резервные копии успешно сохраняются в S3.
- Корректно настроены квоты в S3.
- При необходимости настроено версионирование и дублирование важных данных в разные хранилища.
Устранение неполадок
- Не удаётся установить соединение с S3
- Проверьте правильность адреса в директиве
s3.<s3connectionName>.endpointURL
. - Убедитесь, что адрес и порт S3 доступны и не блокируются сетевым экраном или прокси-сервером.
- Проверьте, правильно ли настроена директива
s3.<s3connectionName>.pathStyleAccess
.
- Проверьте правильность адреса в директиве
- Ошибка аутентификации
- Убедитесь, что указаны правильные и действующие ключи доступа
accessKey
иsecretKey
. - Убедитесь, что для данных ключей в S3 предоставлены необходимые разрешения.
- Убедитесь, что указаны правильные и действующие ключи доступа
- Ошибки доступа к корзинам
- Проверьте существование указанных корзин.
- Убедитесь в правильности политик доступа к корзинам.
- Проверьте, не содержат ли имена корзин недопустимых символов.
- Ошибки загрузки или скачивания файлов
- Проверьте права доступа к корзинам.
- Убедитесь, что не превышены квоты хранения.
- Проблемы с резервным копированием
- Проверьте настройки резервного копирования и подключения
s3.default
. - Убедитесь, что в корзине достаточно места.
- Проверьте права доступа к корзине для резервного копирования.
- Проверьте настройки резервного копирования и подключения
Эта статья была полезна 2 чел.