Создание новой конфигурации файлового хранилища ================================================= .. _content_new_config: .. contents:: :depth: 3 Создать конфигурацию хранилища контента в системе можно несколькими способами: 1) Создание непосредственно в системе через журнал **«Хранилища контента»** 2) Создание через yml файл в проекте. 3) Загрузить через Приложения Citeck. Создание через журнал «Хранилища контента» ---------------------------------------------- Для создания конфигурацию необходимо: - Перейти в журнал **Хранилища контента (Рабочее пространство "Раздел администратора" - Контент)** .. image:: _static/content_3.png :width: 700 :align: center - Создать запись с указанием **типа хранилища контента**, для которого вы делаете конфигурацию (каждый тип имеет свой набор атрибутов конфигурации, необходимый ему для обеспечения работы): .. image:: _static/content_4.png :width: 400 :align: center - Заполнить основные поля конфигурации: **ID, Имя, Тип** (будет выбран автоматически). Напишите максимально понятный ID, поскольку именно он будет отображаться в большинстве логов системы. .. image:: _static/content_5.png :width: 500 :align: center - Заполнить дополнительные параметры конфигурации, относящиеся непосредственно к выбранному типу хранилища. .. image:: _static/content_6.png :width: 600 :align: center - Сохранить конфигурацию и убедиться, что она создалась в журнале. Создание через yml файл в проекте ----------------------------------- Для создания конфигурации необходимо: - Создать yml файл с конфигурацией: .. code-block:: yaml --- 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* - Конфигурация хранилища данных. У каждого типа свой набор атрибутов, ознакомиться с ним подробнее можно ниже - :ref:`Параметры конфигурации отдельный хранилищ контента`. - Расположить созданный вами файл по пути: * В микросервисе: ``${home_dir}/src/main/resources/eapps/artifacts/content/storage/`` * В старых проектах: ``${module_name}/src/main/resources/alfresco/module/${module_name}/content/storage/`` В данных директориях вы можете создавать внутреннюю структуру папок. Поиск артифактов шаблонов происходит рекурсивно по папкам, но начинается именно с этих директорий. .. image:: _static/content_7.png :width: 400 :align: center - Убедиться, что она создалась в журнале. Загрузить через Приложения Citeck ----------------------------------- Для загрузки конфигурации через Приложения Citeck необходимо: - Создать приложение с имеющегося стенда (архив с артефактом создастся автоматически) или, если вы создавали собственный yml файл, создать zip архив самостоятельно. За основу можете взять данный файл `test-app.zip `_ и сгенерировать, как в нем. - Загрузить приложение через журнал **«Приложения ECOS»**. - Убедиться, что в журнале «Хранилища контента» создались ваши конфигурации. Параметры конфигурации отдельных хранилищ контента ==================================================== .. _content_configuration: У каждого хранилища контента есть собственные атрибуты конфигурации, необходимые системе для подключения и организации работы. Хранилище S3 -------------- Общий файл конфигурации для хранилища S3 выглядит следующим образом: .. code-block:: yaml --- 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** - ассоциация на "конечную точку", в которой указывается: |br| - *адрес сервера* должен быть указан корневой адрес s3 без дополнительных путей; Например: ``myminio.domain.ru`` |br| - *данные для аутентификации* в s3. Тип `basic`, в username указывается access key, в password - secret key. * **bucketName** - имя корзины, в которой будут сохраняться все файлы системы. (Корзина представляет собой аналог БД в определённой СУБД. У одного хранилища может быть создано несколько корзин, притом каждая из них может иметь свои параметры, такие как обеспечения доступов и т.п.) Конфигурация максимального размера загружаемого файла ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ В текущей реализации при загрузки файла через file-component происходит отправка всего файла целиком. По умолчанию максимальный размер файла, который можно загрузить в систему, ограничен 100 mb. |br| В дальнейшем планируется реализовать загрузку файлов chunk-ами `ECOSCOM-5619 `_, что позволит загружать файлы любого размера. |br| Для изменения максимального размера файла, который можно загрузить в систему, необходимо: |br| 1. На форме, где используется **file-component**, в вкладке **"Файл"** установить *Максимальный размер файла* |br| 2. В микросервисе **ecos-model** установить свойства необходимыми значениями. .. code-block:: yaml spring: servlet: multipart: max-file-size: 2GB max-request-size: 2GB 3. Сконфигурировать Nginx в **EcosProxyApp** для передачи больших файлов. |br| Для этого необходимо установить параметры в конфигурационном файле **nginx.conf**: .. code-block:: nginx client_max_body_size 2g; Если используется citeck helm chart, то с версии 1.3.53 можно задать параметр: .. code-block:: yaml EcosProxyApp: client: maxBodySize: "2g" 4. Сконфигурировать **Ingress k8s** (если реализация nginx): Если используется citeck helm chart и k8s yandex cloud, нужно сконфигурировать параметры timeout через аннотации: .. code-block:: yaml 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 можно задать параметры: .. code-block:: yaml ecos: ingress: nginx: proxyConnectTimeout: "300s" proxyReadTimeout: "300s" proxyBodySize: "2g" proxyBufferSize: "64k" .. warning:: Учтите, что при использовании Kubernetes, ограничения на размер файла, максимальный timeout также нужно сконфигурировать на уровне ingress-контроллера (nginx) Kubernetes. Параметры и их значения могут отличаться в зависимости от используемой реализации. .. |br| raw:: html