====== Настройка сервиса для массового скачивания документов единым архивом ======
''Начиная с версии системы 3.23'' появилась возможность [[product:documents:downloading_doc|скачивания сразу нескольких документов]] из Объектов единым архивом.
===== Инструкция по развертыванию сервиса архивации =====
==== Требования к программному обеспечению ====
1. Для запуска сервиса архивации на сервере необходимо:
* установить [[https://dotnet.microsoft.com/ru-ru/download/dotnet/6.0|.Net 6.0]];
* для учетной записи, из-под которой запускается сервис архивации, необходимо настроить соответствующие права на папку, в которой будут писаться/удаляться файлы.
2. Необходимо установить архиватор [[https://www.7-zip.org/download.html|7-Zip]] для корректной распаковки скачанных архивов с документами. Чтобы скачанные архивы по умолчанию открывались через данную программу, необходимо убедиться, что файлы с расширением .zip ассоциированы с данным архиватором.
\\
\\
==== Развертывание в качестве внешнего (удаленного) сервиса ====
- Распаковать дистрибутив системы ADVANTA на отдельном сервере
- Перейти внутри каталога с распакованным дистрибутивом в папку **DocumentsArchivingService**.
- В подпапке **Config** настроить конфигурационный файл ''client.config'' сервиса архивации (см. ниже) и, при желании, выполнить настройки ведения логов в файле '' log4net.config''.
- Из командной строки установить ''SL.DocumentsArchiving.Service.exe'' (содержится в папке **DocumentsArchivingService**) по команде ''install'', после чего запустить его по команде ''run''.
\\
=== Настройка конфигурации внешнего сервиса ===
Файл конфигурации ''client.config'' должен быть скопирован в папку публикации сервиса. После редактирования файла конфигурации необходимо перезапустить сервис.
Пример настройки файла конфигурации внешнего сервиса архивации
**Обязательные настройки отмечены -звездочкой (*)**
- '''' (*) - не изменяется
- '''' (*) - настройка параметров подключения сервиса к базе данных системы ADVANTA
* '''' (*)
* ''name'' - тип подключения, возможные значения: ''db''
* ''providerName'' - указание провайдера для подключения, возможные значения: ''System.Data.SqlClient''
* ''connectionString'' - заменить значение ''{DbConnectionString}'' на корректную строку подключения к базе данных
* ''''
* ''name'' - тип подключения, возможные значения: ''busDb'' - имя строки подключения для шины данных
* ''providerName'' - указание провайдера для подключения, возможные значения: ''System.Data.SqlClient''
* ''connectiongString'' - заменить значение ''{DbConnectionString}'' на корректную строку подключения к базе данных
- '''' (*) - основные настройки приложения типа ключ-значение '''' - один параметр определяет одну настройку. Описание значений ключей:
* ''BusTransportType'' - тип транспорта для шины данных, возможные значения (если в конфиге нет параметра, используется значение ''SqlServer''):
* ''SqlServer'' - шина данных работает через SQL Server (требует указания в разделе '''' выше строки подключения с именем ''busDb'')
* ''InMemory'' - шина данных работает через память
* ''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''
- '''' - настройки DI-контейнера. Надо выбрать только 1 из вариантов, а второй закомментировать (как в примере выше):
* ''...первый блок ...'' - при разрешении зависимости в SL.Storage.SqlFileStorageProvider (файлы хранятся в БД)
* ''...второй блок ...'' - при разрешении зависимости в SL.Storage.LocalFileStorageProvider (файлы хранятся на диске, значение ''value'' параметра ''documentsFolder'' должно содержать имя папки с файлами)
\\
\\
=== Настройка логирования работы внешнего сервиса архивации ===
Файл конфигурации ведения логов приложения ''log4net.config'' должен быть скопирован в папку публикации сервиса. Если данный файл отсутствует, то в этом случае логи работы сервиса вестись не будут.
После редактирования файла конфигурации логов необходимо перезапустить сервис.
Пример содержания файла ''log4net.config'':
Подробнее о значениях параметров файла настройки см. в официальной документации Log4net - https://logging.apache.org/log4net/manual/configuration/appenders/rollingfileappender.html
\\
\\
==== Развертывание в качестве локального сервиса ====
Для использования локального сервиса архивации (встроенного в Cистему), устанавливать отдельно его не нужно, но необходимо настраивать параметры сервиса в конфигурационном файле ''client.config'' самой Системы (см. ниже).
Рекомендуется разворачивать сервис архивации файлов только удаленно, т.е. на отдельном сервере, отличном от сервера, где установлена Система ADVANTA.
\\
\\
===== Принципы настройки сервиса архивирования файлов =====
Для настройки сервиса для массового скачивания документов единым архивом необходимо:
1. Обязательно предусмотреть возможность выноса сервиса архивации файлов на отдельный сервер.
2. Скорректировать раздел ''appSettings'' в конфигурационном файле ''client.config'' сервера приложения ADVANTA, добавив параметры для настройки взаимодействия с Сервисом массового скачивания документов:
**При использовании сервиса архивации на отдельном сервере**
**При использовании локального сервиса архивации необходимо настроить дополнительные параметры, кроме указанных выше**
Где:
* ''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'', то используется его значение по умолчанию.
Если ключ активации функционала не указан, то возможности массового скачивания нет, даже если [[product:access:list|право]] [[product:documents:downloading_doc|«Скачивание нескольких документов»]] явно разрешено.
Подробнее об отслеживании хода процесса скачивания документов единым архивом на странице [[product:settings:logs:procs_in_background#архивация_файлов|«Фоновые процессы»]].