要求:我们正在尝试实现一个应用程序,其功能是使用spring sftp出站网关将文件从入站文件夹移动到sftp上的进程文件夹。我们已经实现了sftp出站网关,如下所示。当我们执行应用程序时它没有提供任何内容,即既没有异常也没有预期的输出(即文件没有在sftp上移动)
<int-sftp:outbound-gateway id="remoteftpLS"
session-factory="defaultSftpSessionFactory" request-channel="sftpRequestChannel"
filename-regex=".*\.txt$" command="mv" expression="'/tmp/datlaa'"
rename-expression="'/tmp/datlaa/archive'" />
我想将* .txt文件从'/ tmp / datlaa移动到/ tmp / datlaa / archive。
你能不能指出我身边的配置错误。或者如何使它发挥作用?
由于
添加应用程序上下文文件 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.xsd“&gt;
答案 0 :(得分:1)
MV
命令处理单个文件:
mv命令没有选项。
表达式属性定义&#34;来自&#34; path和rename-expression属性定义&#34;到&#34;路径。默认情况下,rename-expression是标题[&#39; file_renameTo&#39;]。此表达式不能求值为null或空字符串。如有必要,将创建所需的任何远程目录。结果消息的有效负载是Boolean.TRUE。原始远程目录在file_remoteDirectory标头中提供,文件名在file_remoteFile标头中提供。新路径位于file_renameTo标题中。
请参阅Spring Integration Reference Manual。
您的filename-regex
将被忽略,expression
和rename-expression
都应指向目标文件。
如果您想要处理大量文件,例如您在filename-regex
指定时请考虑使用SFTP LS Gateway -> Spliter -> SFTP MV Gateway
。