如何使用spring Integation SFTP Gateway将文件移动到文件夹?

时间:2016-01-07 09:14:22

标签: spring-integration sftp

要求:我们正在尝试实现一个应用程序,其功能是使用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;                                                                                                                                                                                                                                                                                                        

1 个答案:

答案 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将被忽略,expressionrename-expression都应指向目标文件。

如果您想要处理大量文件,例如您在filename-regex指定时请考虑使用SFTP LS Gateway -> Spliter -> SFTP MV Gateway