跳到主要内容

FTP/FTPS 适配器

QWen Plus 中英对照 FTP/FTPS Adapters

Spring Integration 提供了对使用 FTP 和 FTPS 进行文件传输操作的支持。

文件传输协议 (FTP) 是一种简单的网络协议,它允许你在互联网上的两台计算机之间传输文件。FTPS 代表“通过 SSL 的 FTP”。

你需要将这个依赖项添加到你的项目中:

<dependency>
<groupId>org.springframework.integration</groupId>
<artifactId>spring-integration-ftp</artifactId>
<version>6.4.2</version>
</dependency>
xml

在FTP通信中有两个角色:客户端和服务器。要通过FTP或FTPS传输文件,您需要使用一个客户端,该客户端会发起与运行FTP服务器的远程计算机的连接。连接建立后,客户端可以选择发送或接收文件的副本。

Spring Integration 支持通过提供三个客户端端点来发送和接收 FTP 或 FTPS 文件:入站通道适配器、出站通道适配器和出站网关。它还提供了基于命名空间的配置选项,用于定义这些客户端组件。

要使用 FTP 命名空间,在 XML 文件的头部添加以下内容:

xmlns:int-ftp="http://www.springframework.org/schema/integration/ftp"
xsi:schemaLocation="http://www.springframework.org/schema/integration/ftp
https://www.springframework.org/schema/integration/ftp/spring-integration-ftp.xsd"
xml

部分总结

📐
📐📐📐📐📐📐📐📐📐📐📐📐📐📐📐📐📐📐📐📐📐📐📐📐📐📐📐

📄️ 高级配置

DefaultFtpSessionFactory 提供了对底层客户端 API 的抽象,该 API(自 Spring Integration 2.0 起)是 Apache Commons Net。这使您无需处理 org.apache.commons.net.ftp.FTPClient 的低级配置细节。会话工厂公开了一些常见的属性(自 4.0 版起,现在包括 connectTimeout、defaultTimeout 和 dataTimeout)。但是,有时您需要访问较低级别的 FTPClient 配置以实现更高级的配置(例如设置主动模式的端口范围)。为此,AbstractFtpSessionFactory(所有 FTP 会话工厂的基类)提供了挂钩,形式为以下列出的两个后处理方法:

📄️ FTP 流式传输入站通道适配器

版本 4.3 引入了流式传入通道适配器。此适配器生成有效负载类型为 InputStream 的消息,允许在不写入本地文件系统的情况下获取文件。由于会话保持打开状态,消费应用程序需要在文件被消费后负责关闭会话。会话在 closeableResource 头(IntegrationMessageHeaderAccessor.CLOSEABLE\_RESOURCE)中提供。标准框架组件,如 FileSplitter 和 StreamTransformer,会自动关闭会话。有关这些组件的更多信息,请参阅文件拆分器和流转换器。以下示例展示了如何配置入站流通道适配器:

📄️ FTP 会话缓存

在 3.0 之前的版本中,默认情况下会自动缓存会话。提供了一个 cache-sessions 属性用于禁用自动缓存,但该解决方案没有提供配置其他会话缓存属性的方法。例如,您无法限制创建的会话数量。为了支持这一需求以及其他配置选项,添加了 CachingSessionFactory。它提供了 sessionCacheSize 和 sessionWaitTimeout 属性。sessionCacheSize 属性控制工厂在其缓存中维护的活动会话数量(默认值是无限制)。如果达到了 sessionCacheSize 阈值,任何尝试获取另一个会话的操作都将被阻塞,直到缓存中的某个会话可用或会话等待时间到期(默认等待时间为 Integer.MAX\_VALUE)。sessionWaitTimeout 属性用于配置该值。