Создание новой конфигурации файлового хранилища

Создать конфигурацию хранилища контента в системе можно несколькими способами:

  1. Создание непосредственно в системе через журнал «Хранилища контента»

  2. Создание через yml файл в проекте.

  3. Загрузить через Приложения 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, что позволит загружать файлы любого размера.

Для изменения максимального размера файла, который можно загрузить в систему, необходимо:
  1. На форме, где используется file-component, в вкладке «Файл» установить Максимальный размер файла

  2. В микросервисе ecos-model установить свойства необходимыми значениями.

    spring:
        servlet:
            multipart:
                max-file-size: 2GB
                max-request-size: 2GB
    
  3. Сконфигурировать Nginx в EcosProxyApp для передачи больших файлов.

    Для этого необходимо установить параметры в конфигурационном файле nginx.conf:

    client_max_body_size 2g;
    

    Если используется citeck helm chart, то с версии 1.3.53 можно задать параметр:

    EcosProxyApp:
        client:
            maxBodySize: "2g"
    
  4. Сконфигурировать 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. Параметры и их значения могут отличаться в зависимости от используемой реализации.