我需要使用Spring Integration将文件从SFTP服务器A传输到SFTP Server BI,并实现了一个SpringBoot应用程序,该应用程序使用inboundchanneladapter将文件从SFTP服务器A下载到本地文件系统,并使用OutputChanneladapter上传文件文件从本地服务器传输到SFTP服务器B
SFTP服务器A(源)>本地文件系统> SFTP服务器B(目标)
我无权删除SFTP服务器A中的文件,但在文件传输到服务器B之后,我需要删除本地文件系统中的文件(因为本地文件系统的大小会不断增加)
问题 从本地文件系统中删除文件后,Spring Integration再次将文件从SFTP服务器A带回。如果我不从本地文件系统中删除文件,则它可以正常工作。由于将来出现大小问题,我不想将文件保留在本地文件系统中。
从本地文件系统中删除文件时,Spring Integration元数据是否被删除?我已经使用了AcceptOnceFileListFilter但不能解决问题。请建议
答案 0 :(得分:1)
您绝对应该显示配置,但是无论如何您都应该考虑使用SftpPersistentAcceptOnceFileListFilter
:https://docs.spring.io/spring-integration/docs/5.0.6.RELEASE/reference/html/sftp.html#sftp-inbound
从版本5.0
开始,这样的过滤器是远程文件的默认过滤器,但是:https://jira.spring.io/browse/INT-4115
因此,如果您使用某些自定义过滤器逻辑覆盖它,则仍必须通过CompositeFileListFilter
提供它。有关此事,请参阅相同的文档。