Файловые хранилища

Система предоставляет несколько вариантов хранения файлов, прикрепляемых к объектам в процессе работы: база данных приложения и файловые хранилища.

К файловым хранилищам относятся:

  • файловая система на сервере приложения;
  • хранилище, работающее по протоколу S3 (например, Amazon S3, Ceph);
  • любое файловое хранилище через groovy-модуль.

Параметры файловых хранилищ настраиваются в конфигурационном файле file-storage.xml. В конфигурационном файле можно указать одно или несколько файловых хранилищ. Только одно хранилище файлов может быть активным, т.е. доступным для записи файлов.

Раздельное хранение файлов настройки и пользовательских файлов

По умолчанию все файлы хранятся в базе данных.

Если настроено файловое хранилище, то пользовательские файлы загружаются в активное файловое хранилище.

К пользовательским файлам относятся:

  • файлы, добавленные в контенте "Список файлов";
  • файлы, добавленный к объекту (кнопка "Добавить файл");
  • файлы, добавленные как значение атрибута "Файл";
  • экземпляры отчетов в контенте "Список отчетов";
  • изображения, добавляемые в атрибутах типа "Текст в формате RTF";
  • файлы входящих писем.

Файлы настройки, загружаемые через интерфейс администратора (системные файлы), всегда хранятся в базе данных.

К системным файлам относятся:

  • шаблоны отчетов;
  • изображения элементов справочников;
  • логотипы;
  • фавикон;
  • изображения в значениях по умолчанию атрибутов типа "Текст в формате RTF".

Место хранения файла хранится в базе данных (параметр storage в таблице TBL_FILE). Для системных файлов всегда пусто, так как они хранятся в базе данных. Для пользовательских и временных файлов всегда заполнено названием файлового хранилища

Загрузка файлов в файловые хранилища

По умолчанию загрузка файлов в файловое хранилище выполняется через базу данных: сначала файл записывается в базу данных, а затем с помощью задачи планировщика переносится в хранилище.

При использовании в качестве хранилища файловой системы на сервере приложения или хранилища, работающего по протоколу S3, доступна загрузка файлов в хранилище напрямую. Возможность включается в конфигурационном файле dbaccess.properties.