Перемещение файла из одного места в другое в Муле

Я новичок в Муле. Я должен сделать следующее задание

Файл находится в каком-то месте. Мне нужно переместить этот файл в другое место. Критерии выбора местоположения основаны на имени файла.

Предположим, имя файла '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>
Другие вопросы по тегам