Spring integration for sftp

后端 未结 1 1023
醉梦人生
醉梦人生 2021-01-07 09:52

How can I move file from local system to remote FTP using SFTP adapter. I am going through the examples and all are mentioning to copy files from remote FTP to local machine

相关标签:
1条回答
  • 2021-01-07 10:32

    Here's configuration based on yours that I actually checked to be working, you can use it as a starting point.

    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:int="http://www.springframework.org/schema/integration"
       xmlns:int-sftp="http://www.springframework.org/schema/integration/sftp"
       xmlns:file="http://www.springframework.org/schema/integration/file"
       xsi:schemaLocation="
            http://www.springframework.org/schema/beans
            http://www.springframework.org/schema/beans/spring-beans.xsd
            http://www.springframework.org/schema/integration
            http://www.springframework.org/schema/integration/spring-integration.xsd
            http://www.springframework.org/schema/integration/sftp
            http://www.springframework.org/schema/integration/sftp/spring-integration-sftp-2.2.xsd
            http://www.springframework.org/schema/integration/file
            http://www.springframework.org/schema/integration/file/spring-integration-file-2.2.xsd">
    
    <bean id="sftpSessionFactory" class="org.springframework.integration.sftp.session.DefaultSftpSessionFactory">
        <property name="host" value="localhost"/>
        <property name="user" value="user01"/>
        <property name="password" value="abc123"/>
        <property name="port" value="990"/>
    </bean>
    
    <int:channel id="sftpChannel"/>
    
    <file:inbound-channel-adapter directory="#{T(System).getProperty('java.io.tmpdir')}" id="fileInbound"
                                  channel="sftpChannel" filename-pattern="*.xml">
        <int:poller fixed-rate="1000" max-messages-per-poll="100"/>
    </file:inbound-channel-adapter>
    
    <int-sftp:outbound-channel-adapter id="sftpOutboundAdapter" session-factory="sftpSessionFactory"
                                       channel="sftpChannel" charset="UTF-8" remote-directory="/"
                                       remote-file-separator="/"/>
    
    </beans>
    

    Problems with your configuration:

    1. You use sftpSessionFactory as a channel in inbound-channel-adapter. It should define the message channel to which the payload shall be forwarded to, so in your case it seems like it should be publishToSFTPChannel
    2. publish-subscribe-channel used instead of simple point-to-point channel
    0 讨论(0)
提交回复
热议问题