Создание новой конфигурации файлового хранилища
Создать конфигурацию хранилища контента в системе можно несколькими способами:
Создание непосредственно в системе через журнал «Хранилища контента»
Создание через yml файл в проекте.
Загрузить через Приложения ECOS.
Создание через журнал «Хранилища контента»
Для создания конфигурацию необходимо:
Перейти в журнал: Инструменты → Контент → Хранилища контента:
Создать запись с указанием типа хранилища контента, для которого вы делаете конфигурацию (каждый тип имеет свой набор атрибутов конфигурации, необходимый ему для обеспечения работы):
Заполнить основные поля конфигурации: ID, Имя, Тип (будет выбран автоматически). Напишите максимально понятный ID, поскольку именно он будет отображаться в большинстве логов системы.
Заполнить дополнительные параметры конфигурации, относящиеся непосредственно к выбранному типу хранилища.
Сохранить конфигурацию и убедиться, что она создалась в журнале.
Создание через yml файл в проекте
Для создания конфигурации необходимо:
Создать yml файл с конфигурацией:
--- id: content-storage-s3 name: en: S3 content storage ru: Хранилище контента для S3 type: S3 config: endpoint: emodel/endpoint@content-storage-s3-endpoint bucketName: "ecos-content"
Где:
id - ID конфигурации. Напишите максимально понятный ID, поскольку именно он будет отображаться в большинстве логов системы.
name - Имя конфигурации.
type - Тип хранилища контента. Возможные варианты: S3
config - Конфигурация хранилища данных. У каждого типа свой набор атрибутов, ознакомиться с ним подробнее можно ниже - Параметры конфигурации отдельный хранилищ контента.
Расположить созданный вами файл по пути:
В микросервисе:
${home_dir}/src/main/resources/eapps/artifacts/content/storage/
В старых проектах:
${module_name}/src/main/resources/alfresco/module/${module_name}/content/storage/
В данных директориях вы можете создавать внутреннюю структуру папок. Поиск артифактов шаблонов происходит рекурсивно по папкам, но начинается именно с этих директорий.
Убедиться, что она создалась в журнале.
Загрузить через Приложения ECOS
Для загрузки конфигурации через Приложения ECOS необходимо:
Создать приложение с имеющегося стенда (архив с артефактом создастся автоматически) или, если вы создавали собственный yml файл, создать zip архив самостоятельно. За основу можете взять данный файл test-app.zip и сгенерировать, как в нем.
Загрузить приложение через журнал «Приложения ECOS».
Убедиться, что в журнале «Хранилища контента» создались ваши конфигурации.
Параметры конфигурации отдельных хранилищ контента
У каждого хранилища контента есть собственные атрибуты конфигурации, необходимые системе для подключения и организации работы.
Хранилище S3
Общий файл конфигурации для хранилища S3 выглядит следующим образом:
---
id: content-storage-s3
name:
en: S3 content storage
ru: Хранилище контента для S3
type: S3
config:
endpoint: "emodel/endpoint@content-storage-s3-endpoint"
bucketName: "ecos-content"
Где:
endpoint - ассоциация на «конечную точку», в которой указывается:
- адрес сервера должен быть указан корневой адрес s3 без дополнительных путей; Например:myminio.domain.ru
- данные для аутентификации в s3. Тип basic, в username указывается access key, в password - secret key.bucketName - имя корзины, в которой будут сохраняться все файлы системы. (Корзина представляет собой аналог БД в определённой СУБД. У одного хранилища может быть создано несколько корзин, притом каждая из них может иметь свои параметры, такие как обеспечения доступов и т.п.)
Конфигурация максимального размера загружаемого файла
В текущей реализации при загрузки файла через file-component происходит отправка всего файла целиком.
По умолчанию максимальный размер файла, который можно загрузить в систему, ограничен 100 mb.
В дальнейшем планируется реализовать загрузку файлов chunk-ами ECOSCOM-5619, что позволит загружать файлы любого размера.
- Для изменения максимального размера файла, который можно загрузить в систему, необходимо:
На форме, где используется file-component, в вкладке «Файл» установить Максимальный размер файла
В микросервисе ecos-model установить свойства необходимыми значениями.
spring: servlet: multipart: max-file-size: 2GB max-request-size: 2GB
Сконфигурировать Nginx в EcosProxyApp для передачи больших файлов.
Для этого необходимо установить параметры в конфигурационном файле nginx.conf:
client_max_body_size 2g;
Если используется citeck helm chart, то с версии 1.3.53 можно задать параметр:
EcosProxyApp: client: maxBodySize: "2g"
Сконфигурировать Ingress k8s (если реализация nginx):
Если используется citeck helm chart и k8s yandex cloud, нужно сконфигурировать параметры timeout через аннотации:
ecos: ingress: annotations: ingress.alb.yc.io/idle-timeout: 300s ingress.alb.yc.io/request-timeout: 300s
Если используется citeck helm chart с k8s, конфигурируемый через аннотации nginx.ingress.kubernetes.io/proxy-*, то с версии 1.3.53 можно задать параметры:
ecos: ingress: nginx: proxyConnectTimeout: "300s" proxyReadTimeout: "300s" proxyBodySize: "2g" proxyBufferSize: "64k"
Предупреждение
Учтите, что при использовании Kubernetes, ограничения на размер файла, максимальный timeout также нужно сконфигурировать на уровне ingress-контроллера (nginx) Kubernetes. Параметры и их значения могут отличаться в зависимости от используемой реализации.