CalculateMessageProperties#
Действие CalculateMessageProperties предназначено для вычисления и заполнения свойств сообщения.
Действие не заполняет nginx переменные.
Свойства, вычисленные в нем, доступны только на уровне дочерних действий в случае, если в них есть возможность работать с параметрами сообщения.
Параметры:
Название |
Обязательность |
Допустимые значения |
Описание |
|---|---|---|---|
calculate |
+ |
Последовательность текстовых значений вида вида:<br {key: ключ, |
Помимо стандартных переменных для вычисления значений параметров возможно использование следующих переменных:
переменные-функции для вычисления хэша сообщения: clj_message_property_hash_<hash_name>, где hash_name название любого хэша в реализации MessageDigest используемой java;
свойства сообщения, заполненные на предыдущих шагах действия или другими действиями - по префиксу clj_message_property_<property_name>.
Пример 1. Сохранение вложений.
Допустим, необходимо решить следующую задачу:
На вход приходит Multipart сообщение, из которого нужно извлечь все вложения и сохранить каждое вложение в файл.
Название файла должно содержать хэш сохраняемого вложения и переменную составляющую на случай, если несколько вложений будут иметь одинаковое содержимое
- action: MultipartExtract
actions:
# извлекаемых вложений может быть несколько, поэтому для каждого из них вычисляется свое значение filename
- action: CalculateMessageProperties
params:
calculate:
- key: filename
val: $clj_message_property_hash_sha256$clj_random_int
actions:
# сохраняем каждое из вложений с названием, вычисленном на предыдущем шаге
- action: MessageToFile
params:
path: /fir/
filename: $clj_message_property_filename
message: $clj_request_body
Пример 2. Вычисление нескольких свойств.
- action: CalculateMessageProperties
id: cmp
params:
calculate:
- key: static_value
val: static_value_test
# свойство myhash можно сразу использовать при вычислении следующего свойства - myhash4
- key: myhash
val: 123$clj_message_property_hash_md5$clj_message_property_hash_sha256
- key: myhash4
val: 123$clj_message_property_myhash
- key: myrand
val: 123$clj_random_int