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

how to get file with int-ftp:outbound-gateway and remove from server if exists?

感谢关注
我使用 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"/>

谢谢你的帮助。

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

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

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