我正在尝试使用Spring Integration 4.1.5从远程目录及其所有子目录中获取文件名列表。由于我只能使用SFTP连接到远程服务器,因此我需要使用int-sftp:outbound-gateway
。看起来很简单:
<int-sftp:outbound-gateway id="remoteSftpLS"
session-factory="sftpSessionFactory"
request-channel="triggerChannel"
command="ls"
command-options="-1 -R"
remote-file-separator="/"
expression="payload"
charset="UTF-8"
filter="fileFilter"
reply-channel="lsResultChannel" />
然而,似乎忽略了我放入命令选项的任何内容:
FileInfo
个对象,而不是文件名字符串。我在这里缺少什么?
答案 0 :(得分:1)
没有意义。刚刚在本地测试过。结果如下:
payload = {ArrayList@3873} size = 3
0 = "sftpSource1.txt"
1 = "sftpSource2.txt"
2 = "subSftpSource/subSftpSource1.txt"
SftpServerOutboundTests.testInt3172LocalDirectoryExpressionMGETRecursive
,sftpSource
作为远程目录,并且:
<int-sftp:outbound-gateway session-factory="sftpSessionFactory"
request-channel="inboundMGetRecursive"
command="ls"
expression="payload"
command-options="-1 -R"
reply-channel="output"/>
作为配置。
也许你的filter
有罪?
protected final List<F> filterFiles(F[] files) {
return (this.filter != null) ? this.filter.filterFiles(files) : Arrays.asList(files);
}