第 110 章 FTP 组件

可作为 Camel 版本 1.1 提供

此组件通过 FTP 和 SFTP 协议提供对远程文件系统的访问。

当使用来自远程 FTP 服务器消耗时,请确保在进一步 消耗文件时,请阅读标题为 Default 的部分,以了解与消耗文件相关的详细信息。

不支持 绝对路径。Camel 2.16 将通过从目录名修剪所有前导斜杠来转换到相对的绝对路径。日志中会显示 WARN 消息。

Maven 用户需要将以下依赖项添加到其 pom.xml 中:

<dependency>
    <groupId>org.apache.camel</groupId>
    <artifactId>camel-ftp</artifactId>
    <version>x.x.x</version>See the documentation of the Apache Commons
    <!-- use the same version as your Camel core version -->
</dependency>

110.1. URI 格式

ftp://[username@]hostname[:port]/directoryname[?options]
sftp://[username@]hostname[:port]/directoryname[?options]
ftps://[username@]hostname[:port]/directoryname[?options]

其中 directoryname 代表底层目录。目录名称是相对路径。不支持 绝对路径。相对路径可以包含嵌套文件夹,如 /inbox/us。

对于 Camel 2.16 之前的 Camel 版本, catalog Name 必须已存在,因为此组件不支持 autoCreate 选项(该文件组件除外)。其原因在于,其 FTP 管理员(FTP 服务器)任务能够正确地设置用户帐户,以及具有适当文件权限的主目录等。

对于 Camel 2.16,支持 autoCreate 选项。当消费者启动时,在调度轮询前,执行额外的 FTP 操作来创建为端点配置的目录。autoCreate 的默认值为 true

如果没有提供 用户名,则会尝试使用任何密码进行 匿名 登录。
如果没有提供 端口号,Camel 将根据协议提供默认值(ftp = 21, sftp = 22, ftps = 2222)。

您可以使用以下格式在 URI 中附加查询选项 ?option=value&option=value&…​

这个组件使用两个不同的库来实现实际的 FTP 工作。FTP 和 FTPS 使用 Apache Commons Net,而 SFTP 使用 JCraft JSCH

FTPS 组件只在 Camel 2.2 或更新版本中可用。
FTPS (也称为 FTP Secure)是对 FTP 的扩展,增加了对传输层安全(TLS)和安全套接字层(SSL)加密协议的支持。