如何在 int-ftp:outbound-gateway 中使用 filename-regex 选项?
how to use filename-regex option in int-ftp:outbound-gateway?
我在 spring 集成项目中使用 ls
命令和递归模式定义了 ftp 出站适配器。我想过滤并获取指定 sub-directories
中的文件。服务器上的目录结构是:
root
----------a\
---------------in\
---------------------a.op
----------b\
---------------in\
---------------------b.op
我想获取 a.op
和 b.op
文件。我将 filename-regex
选项设置为 ([a-z]|in|.*\.op)
但它没有正常工作,只有一级目录被过滤。我的适配器代码是:
<int:inbound-channel-adapter expression="'/'" channel="inbound">
<int:poller fixed-delay="20000"/>
</int:inbound-channel-adapter>
<int-ftp:outbound-gateway id="gatewayLS"
session-factory="ftpSessionFactory"
request-channel="inbound"
command="ls"
filename-regex="([a-z]|in|.*\.op)"
command-options="-R"
expression="payload"
reply-channel="toSplitter"/>
我该如何解决这个问题?
filename-regex="([a-z]|in|.*\.op)"
在递归期间应用正则表达式。
鉴于您的树结构:
第一个ls
,returns[a,b].
这些由第一个可选的正则表达式元素 [a-z] 传递。
第二个和第四个ls
returnsin
,第二部分通过
第三个ls
returnsa.op
,最后一部分通过了
第五个ls
returnsb.op
,最后一部分通过
我在 spring 集成项目中使用 ls
命令和递归模式定义了 ftp 出站适配器。我想过滤并获取指定 sub-directories
中的文件。服务器上的目录结构是:
root
----------a\
---------------in\
---------------------a.op
----------b\
---------------in\
---------------------b.op
我想获取 a.op
和 b.op
文件。我将 filename-regex
选项设置为 ([a-z]|in|.*\.op)
但它没有正常工作,只有一级目录被过滤。我的适配器代码是:
<int:inbound-channel-adapter expression="'/'" channel="inbound">
<int:poller fixed-delay="20000"/>
</int:inbound-channel-adapter>
<int-ftp:outbound-gateway id="gatewayLS"
session-factory="ftpSessionFactory"
request-channel="inbound"
command="ls"
filename-regex="([a-z]|in|.*\.op)"
command-options="-R"
expression="payload"
reply-channel="toSplitter"/>
我该如何解决这个问题?
filename-regex="([a-z]|in|.*\.op)"
在递归期间应用正则表达式。
鉴于您的树结构:
第一个ls
,returns[a,b].
这些由第一个可选的正则表达式元素 [a-z] 传递。
第二个和第四个ls
returnsin
,第二部分通过
第三个ls
returnsa.op
,最后一部分通过了
第五个ls
returnsb.op
,最后一部分通过