Spring 春天&;文件出站网关链

Spring 春天&;文件出站网关链,spring,spring-integration,Spring,Spring Integration,Spring新手,可能需要一些帮助来了解如何正确地将sftp出站网关与文件出站网关链接在一起。我想确认一个文件已被sftp'ed,然后将其移动到存档位置 本质上,我有一个目录,文件被发送到其他地方进行sftp。然后,在传输文件后,应该将文件移动到存档目录 每个代码段都是独立工作的,但是当我尝试连接这两个代码段时失败了。我无法使用通常使用的回复通道,因为回复通道确认文件已远程保存到何处,并且.msg已移动到存档目录 我怀疑这个命令并不像我想的那样 目前,该文件90%的时间都会移动到归档目录,而不会

Spring新手,可能需要一些帮助来了解如何正确地将sftp出站网关与文件出站网关链接在一起。我想确认一个文件已被sftp'ed,然后将其移动到存档位置

本质上,我有一个目录,文件被发送到其他地方进行sftp。然后,在传输文件后,应该将文件移动到存档目录

每个代码段都是独立工作的,但是当我尝试连接这两个代码段时失败了。我无法使用通常使用的回复通道,因为回复通道确认文件已远程保存到何处,并且.msg已移动到存档目录

我怀疑这个命令并不像我想的那样

目前,该文件90%的时间都会移动到归档目录,而不会对该文件进行SFTP

这是可能的,还是我找错了方向?有没有办法配置sftp:出站网关下游,或者我应该尝试使用其他方法

<!-- START: SFTP files-->   
    <int-file:inbound-channel-adapter 
    directory="file:${sftp.repo}"       
    channel="SFTPchannel"
    prevent-duplicates="false" 
    ignore-hidden="true" />

    <int-sftp:outbound-gateway 
    session-factory="SFTPFactory"
    request-channel="SFTPchannel" 
    order="1"
    command="mput" 
    command-options="-1"
    expression="payload"
    mode="REPLACE"
    use-temporary-file-name="false"
    remote-filename-generator="filenameGenerator"
    auto-create-directory="false"
    remote-directory="${sftp.remote.destination}"/>

    <int-file:outbound-gateway 
    request-channel="SFTPchannel" 
    order="2" 
    directory-expression="'${repository.directory}/'+new java.text.SimpleDateFormat('yyyyMMdd').format(new java.util.Date())" 
    mode="REPLACE" 
    auto-create-directory="true"
    filename-generator="filenameGenerator"
    delete-source-files="true" 
    reply-channel="nullChannel" />
<!-- END: SFTP files--> 


请参阅,尤其是其中的。它涵盖了您的确切用例。

你好,Gary,非常有用。跟进:是否可以在值中使用文件名生成器来生成要存档的文件的文件名?`(不要将代码/配置放在注释中;因为您可以看到它实际上不可读;请改为编辑问题。另外,由于您不喜欢答案上的扩展注释,您通常应该将后续问题作为新问题进行提问,并参考此问题。您可以做任何您想做的事情;这是SpEL-请参阅。如果您想做一些比可能更复杂的事情,请参阅。)在SpEL中,只需在
successChannel
failureChannel
的下游添加组件即可。