我可以将文件从远程计算机复制到本地,但无法将文件移动到远程服务器中的已处理文件夹。
<bean id="sftpSessionFactory" class="org.springframework.integration.sftp.session.DefaultSftpSessionFactory">
<property name="host" value="test.com"/>
<property name="user" value="test"/>
<property name="password" value="test123"/>
<property name="port" value="22"/>
</bean>
<int:publish-subscribe-channel id="publishToSFTPChannel" />
<sftp:inbound-channel-adapter local-directory="#{articlesLocalDirectory}" filename-pattern="*.xml" channel="publishToSFTPChannel" session-factory="sftpSessionFactory" remote-directory="#{articlesRemoteDirectory}">
<int:poller fixed-rate="12000"/>
</sftp:inbound-channel-adapter>
<file:outbound-channel-adapter id="moveProcessedFile"
session-factory="sftpSessionFactory"
channel="publishToSFTPChannel"
directory="#{articlesRemoteDirectory}/processed"
delete-source-files="true" />
我无法将文件移动到远程ftp中的已处理文件夹
答案 0 :(得分:1)
如果您需要在远程计算机上重命名文件,upcoming 3.0 release现在在(s)ftp出站网关上有mv
命令。
答案 1 :(得分:1)
我同意Gary Russell的说法,最好的方法是使用mv
命令。但是,如果您想使用当前版本,可以尝试类似于此的配置:
<?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:sftp="http://www.springframework.org/schema/integration/sftp"
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">
<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"/>
<sftp:inbound-channel-adapter local-directory="/tmp/test" filename-pattern="*.xml"
channel="sftpChannel" session-factory="sftpSessionFactory"
remote-directory="/">
<int:poller fixed-rate="5000"/>
</sftp:inbound-channel-adapter>
<sftp:outbound-channel-adapter channel="sftpChannel" session-factory="sftpSessionFactory"
remote-directory="/processed"/>
</beans>
inbound-channel-adapter
将文件从SFTP服务器下载到本地目录,outbound-channel-adapter
将该文件的副本放在SFTP服务器上的/ processed文件夹中。
请注意,这绝对不是最佳选择,因为您必须将文件重新上传到SFTP。
答案 2 :(得分:0)
请浏览此链接:
http://publib.boulder.ibm.com/infocenter/wmbhelp/v6r1m0/index.jsp?topic=%2Fcom.ibm.etools.mft.doc%2Fac55462_.htm 可能有助于在远程服务器上移动文件...