file-storage.xml
Конфигурационный файл для настройки файловых хранилищ.
В конфигурационном файле file-storage.xml настраивается количество файловых хранилищ, их тип, активное хранилище и прочие характеристики.
Наличие файла не обязательно.
Путь к файлу
Файл создается и хранится в каталоге, путь к которому указан в параметре "-Dext.prop.dir" виртуальной машины Java. Например, Dext.prop.dir=/opt/nausd4/conf.
Содержание файла
Параметры файлового хранилища
Характеристика | Блок или тег в файле | Описание |
---|---|---|
Число файловых хранилищ | количество блоков <storage> |
Число файловых хранилищ соответствует количеству блоков. Можно настроить одно или несколько файловых хранилищ |
Активное хранилище | тег <active> |
Хранилище, в котором размещаются файлы при добавлении. Другие хранилища будут хранить ранее добавленные в них файлы. Если активное хранилище не указано (тег <active> </active> удален вместе с содержимым), то файлы будут помещаться в базу данных |
Включение механизма "склеивания" файлов" |
тег <deduplication> |
Необязательный параметр. Регулирует возможность "склеивания" файлов. Склеивание файлов — процедура присвоения одного хеша и одного соответствующего контента целой группе файлов, если среди загруженных присутствуют файлы с одинаковым контентом. Возможные значения:
Перед переключением параметра <deduplication> c false на true необходимо выполнять команду api.fileStorage.shrink() |
Код файлового хранилища |
тег <code> |
Код используется для указания активного хранилища |
Описание файлового хранилища |
тег <description> |
|
Путь до хранилища в файловой системе |
тег <path> |
Только для хранения файлов в файловой системе. Директория, указанная в этом параметре, должна существовать и быть пустой. После применения конфигурации в данном каталоге будет создана структура для хранения файлов |
Сжатие |
тег <compress> |
Параметр, определяющий автоматическое сжатие файлов, загружаемых в хранилище. При изменении параметра у существующего хранилища, автоматического сжатия ранее загруженных файлов не производится (для сжатия необходимо выполнить скрипт, см. Операции с файловыми хранилищами). В базе данных все файлы хранятся в сжатом виде |
Тип хранилища |
тег <type> |
Необязательный параметр. Тип хранилища, позволяет выбрать в качестве хранилища файловую систему или Amazon S3. Возможные варианты:
|
Код s3endpoint |
тег <s3endpoint> |
Необязательный параметр Код s3endpoint, где описаны параметры подключения |
Имя бакета в S3 |
тег <bucketName> |
Необязательный параметр Имя бакета в S3. Если его не существует, то он будет создан Правило именования:
|
Структура S3 хранилища |
тег <hierarchical> |
Необязательный параметр. Структура каталогов для файлового хранилища S3. Возможные значения:
Пример: <hierarchical>false</hierarchical> |
Параметры настройки хранилища, работающего по протоколу S3 (Amazon S3, Ceph)
Характеристика | Блок или тег в файле | Описание |
---|---|---|
Список конфигураций для S3 | тег <s3endpoints> |
Необязательный параметр Настройка различных доступов к S3. Должен быть, если есть хотя бы одно S3 хранилище |
Конфигурация S3 хранилища | тег <s3endpoint> |
Необязательный параметр Настройка доступа к S3, параметр заполняется, если есть хотя бы одно S3 хранилище |
Код |
тег <code> |
Уникальный код для данного s3endpoint |
Ключ доступа к S3 | тег <accessKey> | AccessKey из реквизитов доступа к S3 |
Секретный ключ доступа к S3 |
тег <secretKey> |
SecretKey из реквизитов доступа к S3 |
Адрес S3 хранилища |
тег <url> |
Необязательный параметр. Указывается только при использовании S3-хранилища, отличного от AWS S3. Пример: <url>https://ceph-storage.domain.local/</url> |
Количество попыток |
тег <numberOfAttempts> |
Только для хранения файлов в S3. Число, обозначающее сколько раз подряд операции должны прерваться по тайм-ауту, чтобы файловое хранилище заблокировалось на определенное время |
Таймаут для операции |
тег <taskTimeout> |
Только для хранения файлов в S3. Таймаут выполнения действия в файловом хранилище в миллисекундах |
Время блокировки |
тег <rampDownPeriod> |
Только для хранения файлов в S3. Время в миллисекундах, на которое нужно заблокировать файловое хранилище, если numberOfAttempts раз подряд выполнение операций прерывалось по таймауту |
Параметры настройки хранилища, работающего через groovy-модуль
Характеристика | Блок или тег в файле | Описание |
---|---|---|
Конфигурация groovy хранилища | тег <groovyExtendedStorage> |
Необязательный параметр Настройка доступа к groovy-файловому хранилищу. Должен быть, если есть хотя бы одно хранилище типа groovy |
Название модуля | тег <module> |
Название модуля, который содержит реализацию взаимодействия с файловым хранилищем |
Метод, возвращающий реализацию FileStorageCRUD |
тег <method> |
Метод, который должен возвращать реализацию интерфейса ru.naumen.core.server.filestorage.spi.storages.FileStorageCRUD |
Параметры инициализации |
тег <initParams> |
Параметры передаваемые в метод указанный в теге method |
Интерфейс Interface FileStorageCRUD
Интерфейс для основных операций с внешним файловым хранилищем предназначен для реализации в groovy-модуле.
-
create
java.lang.String create(DtObject file, java.io.InputStream content)
Создание файла во внешнем хранилище.
Параметры:
- file — БО файл;
- content — содержимое файла
Возвращает идентификатор файла.
-
delete
void delete(java.lang.String id)
Параметр:
- id — идентификатор файла.
-
exists
boolean exists(java.lang.String id)
Проверить существование файла.
Параметр:
- id — идентификатор файла.
Возвращает true, если файл существует во внешнем хранилище.
-
getFilePath
java.lang.String getFilePath(java.lang.String uuid)
Получить идентификатор файла во внешнем хранилище.
Параметр:
- uuid — идентификатор БО типа file.
Возвращает идентификатор файла во внешнем хранилище.
-
read
java.io.InputStream read(java.lang.String id)
Получить содержимое файла.
Параметр:
- id — идентификатор файла.
Возвращает содержимое файла.
-
saveFilePath
void saveFilePath(java.lang.String uuid, java.lang.String externalId)
Параметры:
- uuid — идентификатор БО типа file;
- externalId — идентификатор файла во внешнем хранилище
-
update
void update(java.lang.String id, DtObject file, java.io.InputStream content)
Обновить содержимое файла во внешнем хранилище.
Параметры:
- id — идентификатор файла;
- file — БО файл;
- content — содержимое файла.