【问题标题】:how to get file with int-ftp:outbound-gateway and remove from server if exists?如何使用 int-ftp:outbound-gateway 获取文件并从服务器中删除(如果存在)?
【发布时间】:2015-04-21 08:11:03
【问题描述】:

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

谢谢你的帮助。

【问题讨论】:

  • 你需要更清楚地解释你的用例,
  • 感谢@Gary 的回复,当在服务器上运行mget run commad 时,如果服务器中的文件存在于本地目录中,则抛出与已存在文件相关的异常:( 如何删除服务器中存在的文件?跨度>

标签: spring ftp spring-integration


【解决方案1】:

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

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

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

【讨论】:

  • 感谢@Gary,如果使用router 并将存在的文件路由到不同的通道以从服务器中删除,您的想法是什么?对吗?
  • 否;如果您想忽略现有文件,只需先强制删除它们即可。
猜你喜欢
  • 1970-01-01
  • 2023-04-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-21
  • 1970-01-01
  • 1970-01-01
  • 2011-10-11
相关资源
最近更新 更多