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