Перемещение файла из одного места в другое в Муле
Я новичок в Муле. Я должен сделать следующее задание
Файл находится в каком-то месте. Мне нужно переместить этот файл в другое место. Критерии выбора местоположения основаны на имени файла.
Предположим, имя файла 'abc_loc1'
, Затем этот файл необходимо переместить в папку Location1. Если имя файла 'abc_loc2'
, он должен быть перемещен в Location2.
Любая помощь будет оценена.
1 ответ
Вы можете использовать транспортный файл Mule с входящими и исходящими конечными точками для перемещения файлов и либо установить атрибут динамического пути для исходящего, либо использовать маршрутизацию выбора на основе исходного имени файла. У вас будет оригинальное имя файла, доступное как #[message.inboundProperties.originalFilename].
ОБНОВЛЕНИЕ (пример потока):
<file:connector name="File"/>
<flow name="exampleFlow">
<file:inbound-endpoint connector-ref="File" path="/tmp/1" responseTimeout="10000" />
<set-variable variableName="myPath" value="#[message.inboundProperties['originalFilename'].substring(message.inboundProperties['originalFilename'].indexOf('_')+1)]" />
<file:outbound-endpoint path="/tmp/#[flowVars['myPath']]" responseTimeout="10000" connector-ref="File" outputPattern="error#[message.inboundProperties['originalFilename']]"/>
</flow>
ОБНОВЛЕНИЕ 2:
чтобы использовать маршрутизацию выбора, замените вышеприведенный файл на что-то вроде этого:
<choice>
<when expression="#[flowVars['myPath'] == '1']">
<file:outbound-endpoint path="/tmp/1" responseTimeout="10000" connector-ref="File" outputPattern="error#[message.inboundProperties['originalFilename']]"/>
</when>
<when expression="#[flowVars['myPath'] == '2']">
<file:outbound-endpoint path="/tmp/2" responseTimeout="10000" connector-ref="File" outputPattern="error#[message.inboundProperties['originalFilename']]"/>
</when>
</choice>