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

Spring与多个SFTP会话的集成

韦熙云
2023-03-14

我使用Spring Integration的SFTP和出站通道适配器将文件上传到远程位置。当它将文件发送到一个SFTP位置时,它可以正常工作。然而,在我的代码中,我试图基于不同的标准发送到多个SFTP位置。

以下是我的设置-从Spring集成文件以下

<beans:bean id="sftpSessionFactory"
    class="org.springframework.integration.sftp.session.DefaultSftpSessionFactory">
    <beans:property name="host" value="localhost"/>
    <beans:property name="password" value="password"/>
    <beans:property name="port" value="22"/>
    <beans:property name="user" value="user"/>
</beans:bean>

<int-sftp:outbound-channel-adapter id="sftpOutboundAdapter"
    session-factory="sftpSessionFactory"
    channel="outputChannel"
    remote-directory="foo/bar"
    use-temporary-filename="false"
    mode="REPLACE"/>

我的问题是:

  1. 有人知道如何配置多个SFTP会话吗

谢谢

共有1个答案

冀鸿才
2023-03-14

有关执行所需操作的技术,请参阅动态ftp示例应用程序。

即将发布的4.2版本(候选版本1现在可用)有一个DelegatingSessionFactory,您可以在其中动态查找要使用的会话工厂。请参阅“4.2中的新增功能”。

 类似资料:
  • 我正在构建一个小微服务来访问来自SFTP文件服务器的文件。我决定使用Spring Integration SFTP完成这项工作。我对Spring Integration很陌生,对它的工作原理很困惑。 我的目标是在SFTP服务器上获得一个目录中的文件列表,并将它们呈现给用户界面。从那里,用户将选择一个文件进行下载,我将使用文件名将文件从SFTP服务器流式传输到用户界面。 其次,我是否需要两个接口才能

  • 我有通过SFTPs文件应用程序: 会话工厂是: 设置为使用复合触发器轮询。 轮询器是用复合触发器设置的。它有一个cron触发器,每天尝试SFTP一次预期的文件。如果没有找到预期的文件,我有一个周期触发器,它覆盖cron触发器。它每15分钟尝试一次SFTP文件(最多5次)。在它获取该文件或者尝试了5次获取该文件之后,cron触发器将覆盖定期触发器。包含此逻辑。 我尝试在上调用但没有成功。注意:在文件

  • 我正在使用Spring集成文件/sftp模块,如何避免下载部分文件?我无法控制将文件推送到ftp/sftp的外部进程。

  • 我有一个用例,用户将多个csv文件放到远程目录中,然后放置ready.txt来指示文件已准备好使用。当我们的applcation在远程目录中看到ready.txt文件时,它应该开始使用sftp文件入站通道适配器将所有文件复制到本地目录,包括ready.txt。是否有办法确保readt.txt文件是最后一个要复制到本地目录的文件? 因为当文件从远程目录复制到本地目录时,我有另一个文件入站通道适配器在

  • 问题内容: 我要为已经在同一域/服务器上运行另一个PHP应用程序的网站构建一个PHP应用程序。我的应用程序当然将使用会话,并且我不希望我的会话干扰现有的应用程序。例如,如果我想使用$ _SESSION [‘username’],也许另一个应用程序也使用$ _SESSION [‘username’],这可能是个问题。我不是在寻找额外的安全层,我相信与之共享主机的应用程序。我只想避免错误。 一种方法是

  • 每当我试图分析以了解Spring范围时,我都被困在某个地方。以下是我分析后的理解,在总结之前,我想和你确认一下。如果我的理解有误,请纠正我。 如果范围是“请求”,则对于来自客户端的每个新请求,无论会话如何,spring 容器都将生成新实例。一旦请求完成,Spring容器将设法关闭实例的生命周期。 如果范围是“会话”,则对于会话的第一个请求,Spring 容器将生成一个新实例,并为该特定会话的所有客