如何使用int-ftp:outbound-gateway获取文件并从服务器中删除(如果存在)?

时间:2015-04-21 08:11:03

标签: spring ftp spring-integration

感谢关注
我使用int-ftp:outbound-gatewaymget命令,我想从服务器检索文件时,如果从服务器检索的文件存在于本地目录中,则抛出以下异常:

org.springframework.messaging.MessagingException: Local file .\backup\a\in\a.in already exists

适配器代码是:

<int-ftp:outbound-gateway id="gatewayGET"
                              local-directory-expression="'./backup/' +#remoteDirectory"
                              session-factory="ftpSessionFactory"
                              request-channel="toGet"
                              reply-channel="toRemoveChannel"
                              command="mget"
                              command-options="-R"
                              expression="payload.remoteDirectory + '/' + payload.filename"/>
是的,请帮助我。

1 个答案:

答案 0 :(得分:1)

当文件已在本地存在时,目前无法忽略该错误,请打开new feature JIRA issue我们可以向网关添加选项。

与此同时,我能想到的一个解决方法是mget将它们转移到临时目录,并使用文件出站通道适配器来移动&#34;移动&#34;文件到最终目录 - 它有一个选项来覆盖(替换)任何现有文件,同时删除临时文件。

或者,您可以使用LS获取文件名,删除它们,然后然后执行mget。