0

我正在使用 Spring Integration 从 FTP 服务器下载/上传文件。

如何remote-directory="/directory Name"在 Spring FTP:Inbound-Channel 中动态更改。

我的客户基本上每天都会创建一个文件夹"MM-dd-yy",并将所有文件复制到那里。在“FTP:入站通道”中,我没有找到任何配置此模式的方法。我基本上必须在配置中硬编码目录或文件名。我想要的是以编程方式设置路径。因为有时我需要从目录下载所有文件或只下载特定文件。

我发现"remote-directory-expression="'directory'+'/'+ new java.text.SimpleDateFormat('dd-MM-yyyy').format(new java.util.Date())"可以在 FTP:Outbound-channel 中设置 FTP:InBound-channel 中有没有这样的属性

我的配置是这样的:

<bean id="ftpClientFactory"
    class="org.springframework.integration.ftp.session.DefaultFtpSessionFactory">
    <property name="host" value="${host}" />
    <property name="port" value="${availableServerPort}" />
    <property name="username" value="${userid}" />
    <property name="password" value="${password}" />
</bean>

<int-ftp:inbound-channel-adapter id="ftpInbound"
    cache-sessions="false" channel="ftpChannel" session-factory="ftpClientFactory"
    filename-pattern="*.txt" auto-create-local-directory="true"
    delete-remote-files="false" remote-directory="/filedirectory"
    local-directory="${local_directory}">
    <int:poller fixed-rate="1000" />
</int-ftp:inbound-channel-adapter>

<int:channel id="ftpChannel">
    <int:queue />
</int:channel>

我没有找到一种方法来完成上述所有项目。

请让我知道如何实现这一目标。

4

1 回答 1

1

你不能用入站适配器来做,但是<ftp:outbound-gateway/>可以用来实现你所需要的;这里描述。

您可以使用ls列出文件,然后使用;<splitter/>和另一个网关。get或者您可以mget在表达式中使用带有文件名模式的命令。

FTP 示例有一个使用网关的示例

于 2013-04-17T12:50:21.660 回答