10.4. 将文件上传到 FTP 或 SFTP 服务器
在集成中,您可以在流的中间上传文件到 FTP 或 SFTP 服务器,或者完成简单的集成。要做到这一点,请将 FTP 或 SFTP 连接添加到流程中,或作为简单的集成完成连接。
先决条件
- 您创建了 FTP 或 SFTP 连接。
- 您正在创建或编辑一个流,Fuse Online 正在提示您添加到集成中。或者,Fuse Online 提示您选择完成连接。
流程
- 在 Add to Integration 页面中,点您要添加连接的加号。如果 Fuse Online 提示您选择完成连接,请跳过这一步。
- 点击您要用来上传文件的 FTP 或 SFTP 连接。
- 在 Choose an action 页面上,选择 Upload。
在 File name 表达式 字段中,键入指定要上传的文件或文件的 Apache Camel 文件语言 表达式。(注意您无法指定正则表达式。)
例如,您可以过滤从 FTP 服务器中具有特定扩展名的所有文件。以下示例指定
.doc扩展的所有文件:'${file:onlyname.noext}.doc'如果要上传 FTP 目录中的所有文件,请将" 文件名表达式 "字段留空。
- 在 FTP 目录 字段中,输入服务器目录的绝对或相对名称。如果 File name 表达式 字段包含一个表达式,则连接会将指定的文件存储在此目录中。如果 File name 表达式 字段为空,则连接将上传到此目录,以及从上一步中收到的所有文件。
在 if file exists 字段中,表示当您上传名称与服务器中具有相同路径的文件时的行为。接受默认 覆盖,以使用您要上传的文件覆盖服务器中的文件。或者,选择以下内容之一:
- 附加 将上传到服务器上的文件中的内容添加。
-
fail 引发
GenericFileOperationException.集成不会进入错误状态。 - 忽略 不上传文件。集成在假设一切正常的情况下继续运行。
- 移动 重命名其中一个文件。
- TryRename 使用临时名称上传文件,并将该文件重命名为所需的名称。此操作不会检查是否存在具有所需名称的文件,这比存在性检查时,大多数服务器上操作比存在性检查更快。
- 在 复制字段时,在 Temporary 文件前缀 中指定字符串。连接在上传时将这个字符串添加到文件的名称中。这可让连接写入服务器上的临时文件,然后重命名该临时文件具有正确名称。这有助于在上传非常大的文件时减少锁定。
- 在 复制字段时,在 Temporary 文件名 中指定字符串。在上传时,连接重命名为具有此名称的文件。这可让连接写入服务器上的临时文件,然后重命名该临时文件具有正确名称。这有助于在上传非常大的文件时减少锁定。
- 点 Next 指定操作的输入类型。
在 Select Type 字段中,如果数据类型不需要已知,接受 类型规格不需要,然后单击 Next。您不需要遵循其中一些说明的其余部分。
但是,建议使用结构化数据类型。例如,如果您要在 data mapper 步骤中映射连接输入,则必须指定数据类型。数据映射程序无法显示非结构化数据的字段。
要指定数据类型,请在 Select Type 字段中选择以下之一作为 schema 类型:
-
JSON 模式是描述 JSON 数据结构的文档。文档的介质类型是
application/schema+json。 -
JSON 实例 是包含 JSON 数据的文档。文档的介质类型是
application/json。 -
XML 模式是描述 XML 数据结构的文档。文档的文件扩展名是
.xsd。 -
XML 实例 是包含 XML 数据的文档。文档的文件扩展名是
.xml。 -
CSV 实例 是一个包含以逗号分隔的值(CSV)数据的文档。文档的文件扩展名是
.csv。
-
JSON 模式是描述 JSON 数据结构的文档。文档的介质类型是
-
在 Definition 输入框中,粘贴符合您选择的模式类型的定义。例如,如果您选择 JSON 模式,则会粘贴 JSON 架构文件的内容,该文件具有介质类型
application/schema+json。 在 Data Type Name 字段中输入您为数据类型选择的名称。例如,如果您要为供应商指定 JSON 模式,则可能会将
Vendor指定为数据类型名称。当您创建或编辑使用您要为其指定此类型的连接的集成时,您将看到此数据类型名称。Fuse Online 在集成视觉化和 data mapper 中显示类型名称。
- 在 Data Type Description 字段中,提供可帮助您区分此类型的信息。当您将鼠标悬停在处理此类型的步骤上时,这个描述会出现在 data mapper 中。
- 点击 Next。
结果
这个连接会出现在您添加的集成视觉化中。