# file

## Описание

Сервис работы с файлами

!!! note
    Опциональный элемент системы. API доступно только внутри инфраструктуры серверной части lexema8. 

## Настройки сервиса файлов.

- **protocol** - используемый веб-протокол (по умолчанию `http`).
- **host** - имя хоста (по умолчанию `localhost`).
- **port** - порт для запуска (по умолчанию `3065`).
- **route** - используемый маршрут (по умолчанию `/api/v2.0/content`).
- **script** - путь к модулю, запускающему сервис (по умолчанию `ecosoft-lexema8/file`).
- **maxSize** - максимальный размер загружаемого файла на сервер (по умолчанию `30mb`).
- **timeout** - количество миллисекунд бездействия, после которого считается, что время ожидания истекло (по умолчанию `120`). В режиме продакшена может потребоваться дополнительно настроить таймаут для веб-сервера (nginx).
- **storage** - Настройка для выбора хранилища файлов. Доступные значения: `db` - хранение файлов в базе, `ftp` - хранение файлов на ftp-сервере, `smb` - хранение файлов на smb-сервере. По умолчанию `db`.
  - **ftp** - настройки ftp-сервера.
    - **host** - имя хоста.
    - **port** - порт.
    - **connectionTimeout** - таймаут подключения.
    - **rootFolder** - путь к папке на ftp-сервере, в которую будут сохраняться файлы. Если необходимо сохранять в корневую папку, то следует задать пустую строку.
    - **login** - логин для подключения к ftp-серверу.
    - **password** - пароль для подключения к ftp-серверу.
    - **secure** - если `true`, то обеспечивается зашифрованное ssl/tls соединение (для корректной работы должно поддерживаться и ftp-сервером) (по умолчанию `false`).
    - **secureOptions** - дополнительные настройки при включении настройки secure.
    - **rejectUnauthorized** - включает/выключает проверку сертификата. По умолчанию `true`.
  - **smb** - настройки smb-сервера.
    - **host** - имя хоста.
    - **port** - порт.
    - **rootFolder** - путь к папке на smb-сервере, в которую будут сохраняться файлы. Если необходимо сохранять в корневую папку, то следует задать пустую строку или не задавать это свойство.
    - **login** - логин для подключения к smb-серверу.
    - **password** - пароль для подключения к smb-серверу.
    - **domain** - домен для подключения к smb-серверу.
- **enablePreviewFiles** - флаг, отвечающий за генерацию файлов предпросмотра при загрузке на сервер и выгрузке (по умолчанию - `false`).
- **convertingWithUpload** - флаг, отвечающий за генерацию файлов предпросмотра при загрузке (`true`) или только при попытке доступа к ним (`false`). (по умолчанию - `true`).
- **usePathForOrganization** - флаг, отвечающий за использование каталога файлового хранилища, указанного для организации (по умолчанию - `false`).
- **checkFile** - если `true`, то при скачивании файла вызывается прикладная функция для проверки прав доступа на файл (по умолчанию - `false`).
