Mule ESB:将远程CSV文件移动到另一个目录

时间:2017-01-24 21:03:41

标签: ftp mule

我希望使用Mule将CSV文件从一个远程目录移动到服务器上的另一个目录以进行存档。例如,移动以下内容:  /record/report.csv到/archive/reports/report_04_09_2015.csv。骡子有可能吗?只是澄清一个重点,目录不在本地服务器上,它们位于不同的服务器上。这个过程至少需要ftp

1 个答案:

答案 0 :(得分:0)

您可以使用文件入站端点并配置moveToPattern和moveToDir属性。在下面的示例中,文件入站将从输入文件夹中读取文件并将其移动到outputDir,其名称模式指定为moveToPattern。将文件转换为字符串以确保从输入目录中删除文件。

<flow name="MoveFile">
        <file:inbound-endpoint path="input" moveToPattern="#[message.inboundProperties.originalFilename + '_' + server.dateTime.format('dd_MM_yyyy')]" moveToDirectory="archiveDir" responseTimeout="10000" doc:name="File"/>
        <file:file-to-string-transformer doc:name="File to String"/>
        <logger message="File Moved" level="INFO" doc:name="Logger"/>
    </flow>

如果服务器不在网络中,则也可以使用FTP。配置FTP连接器以设置moveTo目录和模式 -

<ftp:connector name="FTP" pollingFrequency="1000" validateConnections="true" moveToDirectory="/archive/reports/" moveToPattern="#[message.inboundProperties.originalFilename + '_' + server.dateTime.format('dd_MM_yyyy')]" doc:name="FTP"/>
<flow name="testFlow24">
        <ftp:inbound-endpoint host="localhost" port="21" path="/record/" connector-ref="FTP" responseTimeout="10000" doc:name="FTP">
            <file:filename-regex-filter pattern="report.csv"/>
        </ftp:inbound-endpoint>
</flow>