Это старая версия документа!


Настройка сервиса для массового скачивания документов единым архивом

Начиная с версии системы 3.23 появилась возможность скачивания сразу нескольких документов из Объектов единым архивом.

1. Для запуска сервиса архивации на сервере необходимо:

  • установить .Net Core 3.1;
  • для учетной записи, из-под которой запускается сервис архивации, необходимо настроить соответствующие права на папку, в которой будут писаться/удаляться файлы.

2. Необходимо установить архиватор 7-Zip для корректной распаковки скачанных архивов с документами. Чтобы скачанные архивы по умолчанию открывались через данную программу, необходимо убедиться, что файлы с расширением .zip ассоциированы с данным архиватором.

  1. Перейти в папку DocumentsArchivingService.
  2. В папке Config настроить конфигурационный файл client.config сервиса архивации.
  3. Из командной строки установить SL.DocumentsArchiving.Service.exe (содержится в папке DocumentsArchivingService) по команде install, после чего запустить его по команде run.


Настройка логирования работы внешнего сервиса архивации

Файл конфигурации ведения логов приложения log4net.config должен быть скопирован в папку публикации сервиса. Если данный файл отсутствует, то в этом случае логи работы сервиса вестись не будут. После редактирования файла конфигурации логов необходимо перезапустить сервис.

Пример содержания файла log4net.config:

<?xml version="1.0" encoding="utf-8" ?>
<log4net>
    <root>
      <level value="ALL"/>
      <appender-ref ref="appender"/>
    </root>
    <appender name="appender" type="log4net.Appender.RollingFileAppender">
      <file value="archsvc.log"/>
      <appendToFile value="true"/>
      <rollingStyle value="Size"/>
      <maxSizeRollBackups value="3"/>
      <maximumFileSize value="3MB"/>
      <staticLogFileName value="true"/>
      <layout type="log4net.Layout.PatternLayout">
	    <conversionPattern value="%d %-5p %m%n"/>
      </layout>
    </appender>
</log4net>

Подробнее о значениях параметров файла настройки см. в официальной документации Log4net - https://logging.apache.org/log4net/manual/configuration/appenders/rollingfileappender.html



Для использования локального сервиса архивации (встроенного в Cистему), необходимо настраивать его в конфигурационном файле client.config Системы.

Рекомендуется разворачивать сервис архивации файлов удаленно, т.е. на отдельном сервере, отличном от сервера, где установлена Система ADVANTA.

Для настройки сервиса для массового скачивания документов единым архивом необходимо:

1. Обязательно предусмотреть возможность выноса сервиса архивации файлов на отдельный сервер.

2. Скорректировать раздел appSettings в конфигурационном файле client.config сервера приложения ADVANTA, добавив параметры для настройки взаимодействия с Сервисом массового скачивания документов:

При использовании сервиса архивации на отдельном сервере

<appSettings>
 
    <!-- текущие настройки Системы -->
 
    <!-- Пример настройки Системы для архивации файлов на отдельном сервере -->
 
    <add key="DocumentsArchivingService" value="Remote" />
 
    <add key="DocumentsArchiveLifeTimeHours" value="168" />	
    <add key="MaxTotalFileSize" value="2097152000" />
    <add key="MaxFileCount" value="500" />
    <add key="MaxDocumentsArchivingActionCount" value="3" />
    <add key="MaxFullPathLength" value="150" />
    <add key="MinFolderNameLength" value="3" />
    <add key="MinRootFolderNameLength" value="30" />  
 
</appSettings>

При использовании локального сервиса архивации доступны дополнительные параметры

<appSettings>
 
    <!-- текущие настройки Системы -->
 
    <!-- Пример настройки Системы для архивации файлов на одном сервере с приложением ADVANTA -->
 
    <add key="DocumentsArchivingService" value="Local" />
 
    <!-- Параметры, по аналогии с примером для удаленного сервиса -->
 
    <!-- Дополнительные параметры при выборе локального сервиса архивации файлов -->
 
    <add key="Bus_DocumentsArchivingCommandsQueue:NumberOfWorkers" value="1"/>
    <add key="Bus_DocumentsArchivingCommandsQueue:MaxParallelism" value="3"/>
    <add key="ProfilerLogEnable" value="true"/>
    <add key="IsWriteToProfilerLogAllRequests" value="true"/>
    <add key="ProfilerAllLogsSizeLimitMegaBytes" value="10"/>
    <add key="CompressionLevel" value="Optimal"/>
    <add key="TemporaryArchiveFlat" value="Memory"/>
    <add key="PathToTemporaryArchiveFlat" value="C:\Temp"/>  
 
</appSettings>

Где:

  • DocumentsArchivingService - ключ активации функционала, указывающий на расположение сервиса архивации документов:
    • Remote - используется удалённый сервис архивации документов
    • Local - используется встроенный в Систему сервис архивации документов
    • Если этот ключ отсутствует в конфиге, то сервис архивации документов недоступен, в интерфейсе просмотра документов по проектам не будет чекбоксов для выбора файлов для массового скачивания.
  • DocumentsArchiveLifeTimeHours - время жизни архивов документов (в часах), значение по умолчанию 168
  • MaxTotalFileSize - максимальный суммарный размер файлов (в байтах) для архивирования документов. Если в конфиге нет параметра, используется значение 2097152000
  • MaxFileCount - максимальное количество файлов для архивирования документов. Если в конфиге нет параметра, используется значение 500
  • MaxDocumentsArchivingActionCount - максимальное количество одновременно выполняемых задач архивирования документов. Если в конфиге нет параметра, используется значение 3
  • MaxFullPathLength - максимальная длина полного пути в архиве (символов), значение по умолчанию 200
  • MinFolderNameLength - минимальная допустимая при сокращении длина названия папок архива (кроме корневой), значение по умолчанию 6
  • MinRootFolderNameLength - минимальная допустимая при сокращении длина названия корневой папки, значение по умолчанию 30

Параметры, доступные в файле client.config основного приложения ADVANTA только для варианта, когда DocumentsArchivingService = Local:

  • Bus_DocumentsArchivingCommandsQueue:NumberOfWorkers - количество обработчиков событий сервиса архивации документов, значение по умолчанию 1
  • Bus_DocumentsArchivingCommandsQueue:MaxParallelism - максимальный параллелизм обработчиков событий сервиса архивации документов, значение по умолчанию 3
  • ProfilerLogEnable - запущена ли запись событий сервиса архивации документов профайлером (true или false)
  • IsWriteToProfilerLogAllRequests - следует ли записывать все события сервиса архивации документов профайлером (true или false)
  • ProfilerAllLogsSizeLimitMegaBytes - суммарный лимит (в МБ) журналов профайлера
  • CompressionLevel - степень сжатия архивов сервисом архивации документов (значение по умолчанию Optimal):
    • Optimal - максимальное сжатие
    • Fastest - максимальная скорость архивации
    • NoCompression - без сжатия
  • TemporaryArchiveFlat - место временного размещения скачанных архивируемых файлов - только для DocumentsArchivingService=Local (значение по умолчанию Memory):
    • Memory - оперативная память
    • FileSystem - файловая система
  • PathToTemporaryArchiveFlat - путь к папке для временного размещения скачанных архивируемых файлов - только для варианта TemporaryArchiveFlat = FileSystem




Если какой-то из вышеперечисленных параметров (кроме ключа активации функционала DocumentsArchivingService) не указан в файле client.config, то используется его значение по умолчанию.

Если ключ активации функционала не указан, то возможности массового скачивания нет, даже если право «Скачивание нескольких документов» явно разрешено.

Подробнее об отслеживании хода процесса скачивания документов единым архивом на странице «Фоновые процессы».