我正在尝试将所有文件放在3级深度的目录结构中
例如:
- 图像a.jpg存在于文件夹/ images / 12/34 /
中
- 图像b.jpg存在于文件夹/ images / 56/78
我尝试过如下所述的出站网关:
https://github.com/spring-projects/spring-integration-samples/blob/master/basic/ftp/src/test/resources/META-INF/spring/integration/FtpOutboundGatewaySample-context.xml
和http://forum.spring.io/forum/spring-projects/integration/104612-inbound-ftp-polling-sub-directories?p=604430#post604430
我的配置:
<bean id="ftpSessionFactory"
class="org.springframework.integration.ftp.session.DefaultFtpSessionFactory">
<property name="host" value="127.0.0.1"/>
<property name="port" value="21"/>
<property name="username" value="Administrator"/>
<property name="password" value="SgtSpeedy1"/>
<property name="fileType" value="2"/>
<property name="clientMode" value="2" />
</bean>
<int-ftp:outbound-gateway id="gatewayLS"
cache-sessions="false"
session-factory="ftpSessionFactory"
request-channel="inbound"
command="ls"
command-options=""
expression="'/images/*/*'"
reply-channel="toSplitter"/>
<int:channel id="toSplitter" />
<int-stream:stdout-channel-adapter channel="toSplitter" append-newline="true"/>
我省略了拆分器,只是打印出来用于测试目的。
测试时,我没有得到任何文件。 我已经尝试将文件夹设置为/ images / *然后它将返回“images”文件夹下的所有图像,但不会像提供的链接中所述那样递归。因此不考虑文件夹/ 12/34和/ 56/78。
我看不出我错过了什么。有人可以帮忙吗?
P.S。我正在使用Spring Integration 2.2.6而无法升级到4.0.2(最新版),因为我正在使用框架。否则我会为网关使用-R选项!
答案 0 :(得分:0)
我刚刚使用foo/foo/bar/qux.txt
和foo/foo/baz/fiz.txt
与
<int-ftp:outbound-gateway id="gatewayLS"
session-factory="ftpSessionFactory"
request-channel="inbound"
command="ls"
command-options="-1"
expression="'foo/*/*'"
reply-channel="toSplitter"/>
它工作正常;正如所料......
11:34:55.983 DEBUG [main] ...[Payload ArrayList content=[fiz.txt, qux.txt]]...
(我添加了-1选项来获取文件名)。
这是在服务器端使用linux ftpd。
您确定这些文件位于/images
而不是images
吗? (或者是用户chrooted所以/
是他的家?)