63. SFTP 源
从 SFTP 服务器接收数据。
63.1. SFTP 源 Kamelet 描述 复制链接链接已复制到粘贴板!
63.1.1. 身份验证 复制链接链接已复制到粘贴板!
此 Kamelet 支持使用用户名和密码凭证的 SFTP 身份验证。SFTP 通过 SSH 提供安全文件传输,确保加密通信。
63.1.2. 配置 复制链接链接已复制到粘贴板!
SFTP 源 Kamelet 支持以下配置:
- 连接主机 : SFTP 服务器的主机名或 IP 地址(必需)
- 连接端口 :SFTP 服务器的端口号(默认值:22)
- 用户名 :SFTP 身份验证的用户名(必需)
- 密码 :SFTP 验证的密码(必需)
- 目录名称 :SFTP 服务器上的起始目录路径(必需)
- 递归: 处理子目录中的文件(默认为 false)
- idempotent: Skip already-processed 文件(默认为 true)
- 二进制 :使用二进制传输模式而不是 ASCII (默认: false)
- 自动创建 :如果起始目录不存在,则自动创建其起始目录(默认值: true)
- 删除 :在成功处理后删除文件(默认:false)
63.1.3. 输出格式 复制链接链接已复制到粘贴板!
Kamelet 输出文件内容作为 InputStream,并设置带有文件信息的标头: - file: 处理的文件的名称 - ce-file: Cloud Events 兼容文件名标头
63.1.4. 安全性 复制链接链接已复制到粘贴板!
SFTP 通过使用 SSH 进行身份验证和加密来增强标准 FTP 的安全性,确保凭据和数据安全传输。
63.1.5. 使用示例 复制链接链接已复制到粘贴板!
- route:
from:
uri: "kamelet:sftp-source"
parameters:
connectionHost: "sftp.example.com"
connectionPort: "22"
username: "sftpuser"
password: "sftppass"
directoryName: "/incoming"
steps:
- to:
uri: "kamelet:log-sink"
63.1.6. 带有递归处理的示例 复制链接链接已复制到粘贴板!
- route:
from:
uri: "kamelet:sftp-source"
parameters:
connectionHost: "sftp.example.com"
username: "sftpuser"
password: "sftppass"
directoryName: "/data"
recursive: true
binary: true
steps:
- to:
uri: "kamelet:log-sink"
63.1.7. 文件删除示例 复制链接链接已复制到粘贴板!
- route:
from:
uri: "kamelet:sftp-source"
parameters:
connectionHost: "sftp.example.com"
username: "sftpuser"
password: "sftppass"
directoryName: "/processed"
delete: true
idempotent: false
steps:
- to:
uri: "kamelet:log-sink"
本例在处理后删除文件并禁用幂等性,以允许对同名的文件进行重新处理。
63.2. 配置选项 复制链接链接已复制到粘贴板!
下表总结了 sftp-source Kamelet 可用的选项:
| 属性 | 名称 | 描述 | 类型 | 默认 | 示例 |
|---|---|---|---|---|---|
| connectionHost * | 连接主机 | SFTP 服务器的主机名。 | 字符串 | ||
| connectionPort * | 连接端口 | FTP 服务器的端口。 | 字符串 | 22 | |
| directoryName * | 目录名称 | 起始目录。 | 字符串 | ||
| autoCreate | autocreate Missing directory | 自动创建起始目录。 | 布尔值 | True | |
| 二进制 | 二进制 | 指定文件传输模式 BINARY 或 ASCII。默认为 ASCII (false)。 | 布尔值 | False | |
| delete | 删除 | 如果为 true,则在成功处理后会删除该文件。 | 布尔值 | False | |
| idempotent | idempotency | 跳过已处理的文件。 | 布尔值 | True | |
| ignoreFileNotFoundOrPermissionError | 忽略文件没有被发现的权限错误 | 是否忽略 when (尝试列出目录中的文件或下载文件时),但不存在,还是因为权限错误。默认情况下,当目录或文件不存在或权限不足时,会抛出异常。将这个选项设置为 true 可忽略它。 | 布尔值 | False | |
| passiveMode | 被动模式 | 设置被动模式连接。 | 布尔值 | False | |
| password | 密码 | 用于访问 SFTP 服务器的密码。 | string | ||
| privateKeyFile | 私钥文件 | 设置私钥文件,以便 SFTP 端点可以验证私钥。 | string | ||
| privateKeyPassphrase | 私钥密码 | 设置私钥文件密码短语,以便 SFTP 端点可以进行私钥验证。 | string | ||
| privateKeyUri | 私钥 URI | 设置私钥文件(默认为从 classpath 加载),以便 SFTP 端点可以进行私钥验证。 | string | ||
| 递归 | 递归 | 如果一个目录,也查找所有子目录中的文件。 | 布尔值 | False | |
| strictHostKeyChecking | 严格主机检查 | 设置是否使用严格的主机密钥检查。 | string | False | |
| useUserKnownHostsFile | 使用用户已知的主机文件 | 如果没有明确配置 knownHostFile,则使用 System.getProperty (user.home)/.ssh/known_hosts 中的主机文件。 | 布尔值 | True | |
| username | 用户名 | 用于访问 SFTP 服务器的用户名。 | string |
* = 标记为星号的字段 是必需的。
63.3. 依赖项 复制链接链接已复制到粘贴板!
在运行时,sftp-source Kamelet 依赖于以下依赖项:
<dependencies>
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifact>camel-quarkus-core</artifact>
</dependency>
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifact>camel-quarkus-ftp</artifact>
</dependency>
<dependency>
<groupId>org.apache.camel.quarkus</groupId>
<artifact>camel-quarkus-kamelet</artifact>
</dependency>
<dependency>
<groupId>org.apache.camel.kamelets</groupId>
<artifact>camel-kamelets-utils</artifact>
<version>{kamelets-utils-version}</version>
</dependency>
</dependencies>
63.4. kamelets 源文件 复制链接链接已复制到粘贴板!
https://github.com/apache/camel-kamelets/blob/4.14.x/kamelets/sftp-source.kamelet.yaml