====== Настройка сервиса для массового скачивания документов единым архивом ====== ''Начиная с версии системы 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#архивация_файлов|«Фоновые процессы»]].