Файловые хранилища
Система предоставляет несколько вариантов хранения файлов, прикрепляемых к объектам в процессе работы: база данных приложения и файловые хранилища.
К файловым хранилищам относятся:
- файловая система на сервере приложения;
- хранилище, работающее по протоколу S3 (например, Amazon S3, Ceph);
- любое файловое хранилище через groovy-модуль.
Параметры файловых хранилищ настраиваются в конфигурационном файле file-storage.xml. В конфигурационном файле можно указать одно или несколько файловых хранилищ. Только одно хранилище файлов может быть активным, т.е. доступным для записи файлов.
Раздельное хранение файлов настройки и пользовательских файлов
По умолчанию все файлы хранятся в базе данных.
Если настроено файловое хранилище, то пользовательские файлы загружаются в активное файловое хранилище.
К пользовательским файлам относятся:
- файлы, добавленные в контенте "Список файлов";
- файлы, добавленный к объекту (кнопка Добавить файл);
- файлы, добавленные как значение атрибута "Файл";
- экземпляры отчетов в контенте "Список отчетов";
- изображения, добавляемые в атрибутах типа "Текст в формате RTF";
- файлы входящих писем.
Файлы настройки, загружаемые через интерфейс администратора (системные файлы), всегда хранятся в базе данных.
К системным файлам относятся:
- шаблоны отчетов;
- изображения элементов справочников;
- логотипы;
- фавикон;
- изображения в значениях по умолчанию атрибутов типа "Текст в формате RTF".
Место хранения файла хранится в базе данных (параметр storage в таблице TBL_FILE). Для системных файлов всегда пусто, так как они хранятся в базе данных. Для пользовательских и временных файлов всегда заполнено названием файлового хранилища
Загрузка файлов в файловые хранилища
По умолчанию загрузка файлов в файловое хранилище выполняется через базу данных: сначала файл записывается в базу данных, а затем с помощью задачи планировщика переносится в хранилище.
При использовании в качестве хранилища файловой системы на сервере приложения или хранилища, работающего по протоколу S3, доступна загрузка файлов в хранилище напрямую. Возможность включается в конфигурационном файле dbaccess.properties.