当前位置: 首页 > 知识库问答 >
问题:

如何在Spring integration的ftp入站通道适配器中删除本地文件

凤扬
2023-03-14

我有一个集成案例,从FTP获取xml有效负载,然后使用http出站通道将有效负载发送到webservice,FTP入站通道适配器有一个名为local-directory的强制属性,远程FTP文件将在这里下载,但是当我重新启动时,似乎本地目录中的所有文件都将被重新处理,请问如何避免这种情况?一种可能的方法是删除ftp入站通道适配器中的本地文件,如何做到这一点,你能建议吗?

谢谢

<ftp:inbound-channel-adapter
        channel="requestChannel"
        session-factory="ftpClientSessionFactory"
        remote-directory="/outbound"
        local-directory="/temp"
        auto-create-local-directory="true"
        delete-remote-files="false"
        filename-pattern="*.xml"
        temporary-file-suffix=".writing">
    <int:poller fixed-delay="5000" max-messages-per-poll="10"/>
</ftp:inbound-channel-adapter>


<int:chain id="inboundChain" input-channel="requestChannel" output-channel="replyChannel">

    <int:transformer ref="xmlToJsonTransformer" />
    <int:transformer ref="jsonToMapTransformer" />
    <int:header-enricher>
        <int:header name="Content-Type" value="application/json" overwrite="true"/>
    </int:header-enricher>
    <http:outbound-gateway  expected-response-type="java.lang.String"
                           url="http://localhost:8080/postService/postupdate"
                           http-method="POST"
                           extract-request-payload="true"
                            request-factory="requestFactory">
    </http:outbound-gateway>
</int:chain>

共有1个答案

於炯
2023-03-14

向出站网关添加ExpressionEvaluatingRequestHandlerAdvision以删除该文件。请参见重试和更多示例中的表达式评估建议演示以获得一个示例-它根据成功或失败删除或重命名文件。

 类似资料:
  • 问题内容: Spring Integration FTP中的入站通道适配器和出站通道适配器之间有什么区别?我应该使用哪一个?何时使用? 我从文档中了解到,出站可以发送任何类型的文件(例如byte [],String,java.io.File),但入站仅限于文件类型。那仅仅是区别还是其他? 问题答案: 我建议您首先阅读理论 。 任何Inbound适配器都旨在从外部系统获取数据。Outbound-放置

  • 问题内容: 我已经配置了spring SFTP以将文件从远程路径集中到本地,以处理一些作业,然后同时删除本地和远程文件。 下面的配置工作正常,除了删除本地文件外,我没有找到任何配置来删除本地文件,例如 这里,当文件从远程传输到本地时,服务激活器被调用。 服务激活器完成作业后,如何配置删除本地文件? 编辑:通过以下更改解决了从远程和本地删除有效负载的问题: 问题答案: 消息发送到流之后,入站适配器永

  • 对于Spring Integration FTP入站通道适配器,如果我没有显式设置,是否可以使用远程过滤器的值作为默认值? 例如,在我的用例中,远程目录包含、等,模式将让我成功下载所有这些文件。但是,如果我的本地目录包含附加文件,例如,则将生成、和s的所有3个文件。 我认为,如果本地筛选器默认情况下尊重远程筛选器(如果我没有显式设置),即只生成和两条消息,则更有意义。

  • 如果我创建一个SFTP入站通道适配器,并使用在SFTP中配置为channel属性的通道发送一些文件。文件将传输到SFTP远程目录本地目录,还是直接从通道流到本地目录

  • 问题内容: 入站和出站通道适配器之间的根本区别是什么? 任何示例都将非常有帮助。 我已经查看过Spring文档,这种“方向性”的区别对我来说还不清楚。我支持配置了outbound-channel-adapter的应用程序,但是我发现使用 出站 标签可以直观地了解行为计数器。该适配器获取一个外部文件,然后 将其 引入应用程序中, 在 该应用程序中我们解析文件并保留数据。 这类似于这个问题,但是我想更