简介
FTP(File Transfer Protocol,文件传输协议)是 TCP/IP 协议组中的协议之一。FTP 协议包括两个组成部分:FTP 服务器和 FTP 客户端。其中 FTP 服务器用来存储文件,用户可以使用 FTP 客户端通过 FTP 协议访问位于 FTP 服务器上的资源。在开发网站的时候,通常利用 FTP 协议把网页或程序传到 Web 服务器上。此外,由于 FTP 传输效率非常高,在网络上传输大的文件时,一般也采用该协议。
默认情况下,FTP 协议使用 TCP 端口中的20和21这两个端口,其中20用于传输数据,21用于传输控制信息(命令)。是否使用20作为传输数据的端口与 FTP 使用的传输模式有关,如果采用主动模式,则数据传输端口为20;如果采用被动模式,则最终使用的端口由服务器端和客户端协商决定。
FTP 连接器是基于 FTP 协议实现文件传输的通道,因此应用程序才可与外部 FTP 服务器进行文件的交换。
针对 FTP 连接器提供对 FTP 服务器上的文件和文件夹的访问,主要特性包括:
根据需要读写文件或完全列出目录内容的功能。
支持常见的 FTP 操作,例如:创建目录和复制、移动、重命名和删除文件。
支持锁定文件。
支持文件匹配功能。
连接器配置
通用配置
参数 | 数据类型 | 描述 | 是否必填 | 默认值 |
域名 | string | FTP 服务器域名 | 是 | - |
端口号 | int | FTP 服务器端口号 | 否 | 21 |
用户名 | string | FTP 服务器的用户名,如果服务器需要身份验证,则为必需参数 | 否 | - |
密码 | string | FTP 服务器的密码,如果服务器需要身份验证,则为必需参数 | 否 | - |
工作路径 | string | 指定 FTP 服务器路径作为根目录。若未提供,则为 FTP 服务器默认值 | 否 | - |
传输模式 | enum | 传输模式,目前支持 BINARY(默认值)和 ASCII | 否 | BINARY |
远程 Host 连接验证 | bool | 启用或禁用验证,判断进行数据连接的远程 host 与控制命令连接的 host 是否相同 | 否 | True |
高级配置
参数 | 数据类型 | 描述 | 是否必填 | 默认值 |
重连接频率(秒) | int | 重连接频率(单位s),范围:0~300 | 否 | 10(s) |
控制编码 | enum | 服务器通道控制编码,ISO-8859-1(默认)和 UTF-8 | 否 | ISO-8859-1 |
连接超时时间(秒) | int | 连接超时等待时间(单位s),范围:0~300 | 否 | 60(s) |
响应超时时间(秒) | int | 请求响应超时等待时间(单位s),范围:0~300 | 否 | 60(s) |
连接器配置界面如下:
操作配置
输入参数
参数 | 数据类型 | 描述 | 是否必填 | 默认值 |
文件路径 | string | 读取文件路径 | 是 | |
文件锁 | bool | 是否开启文件锁 | 否 | false |
文件锁等待时间(秒) | int | 文件锁等待时间(秒),范围:0~60 | 否 | 30(s) |
文件校验时间间隔(秒) | int | 文件大小校验等待时间(秒),范围:0~60,以判断文件是否可读。在等待时间前后执行两次 sizecheck 文件大小检测,如果两次检测都返回相同的值,即 sizecheck 期间文件没有其他修改操作则可以读取该文件 | 否 | 0(s) |
输出
组件输出的 message 信息如下:
message 属性 | 值 |
payload | 执行成功后,payload 为 Entity 类型;执行失败后,payload 为空 |
error | 执行成功后,error 为空;执行失败后,error 为 dict 类型,包含“Code”和“Description”字段:“Code”字段表示错误类型,“Description”字段表示错误具体信息 |
attribute | 继承上个组件的 attribute 信息 |
variable | 继承上个组件的 variable 信息 |
FTP 读取文件操作会返回文件内容,根据文件名后缀设置消息的 mimeType 和 encoding 并放到消息 payload 中,后续可通过 dataway 表达式直接访问。
FTP 读取文件操作若执行失败时输出消息 error 中会设置详细返错信息。错误输出为 dict 类型,包含“Code”和“Description”元素,“Code”表示错误类型,“Description”表示错误具体信息,例如:
案例
1. 在连接器列表中选择 FTP 连接器,然后选择 FTP 读取文件操作。
2. 输入连接器配置参数,其中域名、端口、用户名和密码设置为待连接的 FTP 服务器对应参数,工作路径设置为 FTP 服务器下文件处理的相对路径,默认为根路径“/”,其他参数保持默认值即可。参数填写完后可单击下方测试连接校验连接配置参数有效性。具体如下图:
3. 确认连接器配置参数填写无误后单击保存,然后设置操作配置参数。文件路径设为
/data/ftptest.txt
,参数输入见下图:
4. 操作配置参数设置完成后保存返回即可,然后单击右上角发布,选择发布地域后单击确定。
5. 待集成流发布成功后复制HTTP Listener监听路径后访问该域名即可触发流。
FTP 返回 payload 响应结果如下,即为“/data/ftptest.txt”文件内容。
当操作执行失败时,FTP 输出消息 error 中会设置详细返错信息。
输入参数
参数 | 数据类型 | 描述 | 是否必填 | 默认值 |
文件路径 | string | 待写入文件路径(当检测为目录时抛错)支持表达式输入 | 是 | |
文件内容 | string | 待写入文件的内容,默认为当前消息 payload 支持表达式输入 | 否 | #[payload] |
创建父级目录 | bool | 是否尝试创建任何不存在的父目录 | 否 | true |
文件锁 | bool | 是否锁定文件 | 否 | false |
文件锁等待时间(秒) | int | 文件锁等待时间(秒)(范围:0~60) | 否 | 30(s) |
文件写模式 | enum: OVERWRITE、 APPEND、CREATE_NEW | 文件写模式: OVERWRITE:覆盖写 APPEND:追加写 CREATE_NEW:当文件不存在时新建,否则抛错 | 否 | OVERWRITE |
输出
组件输出的 message 信息如下:
message 属性 | 值 |
payload | 执行成功或失败,payload 均为空 |
error | 执行成功后,error 为空;执行失败后,error 为 dict 类型,包含“Code”和“Description”字段:“Code”字段表示错误类型,“Description”字段表示错误具体信息 |
attribute | 继承上个组件的 attribute 信息 |
variable | 继承上个组件的 variable 信息 |
FTP 写文件操作,若执行成功则 payload 为空;若执行失败时输出消息 error 中会设置详细返错信息。错误输出为 dict 类型,包含“Code”和“Description”元素,“Code”表示错误类型,“Description”表示错误具体信息,例如:
案例
1. 在连接器列表中选择 FTP 连接器,然后选择 FTP 写文件操作。
2. 输入连接器配置参数,其中域名、端口、用户名和密码设置为待连接的 FTP 服务器对应参数,工作路径设置为 FTP 服务器下文件处理的相对路径,默认为根路径“/”,其他参数保持默认值即可。参数填写完后可单击下方测试连接校验连接配置参数有效性。具体如下图:
3. 确认连接器配置参数填写无误后单击保存,然后设置操作配置参数。文件路径设为“/data/ftptest.txt”,参数输入见下图:
4. 操作配置参数设置完成后保存返回即可,然后单击右上角发布,选择发布地域后单击确定。
5. 待集成流发布成功后复制 HTTP Listener 监听路径后访问该域名即可触发流。
FTP 写文件操作若执行成功则返回 payload 响应结果为空。
当操作执行失败时,FTP 输出消息 error 中会设置详细返错信息。
输入参数
参数 | 数据类型 | 描述 | 是否必填 | 默认值 |
文件删除路径 | string | 待删除的文件或路径: 当文件或路径不存在时抛错 支持删除单个文件以及目录(包括目录下所有文件) 如果文件未被锁定,则删除路径指向的文件,支持表达式输入 | 是 | - |
输出
组件输出的 message 信息如下:
message 属性 | 值 |
payload | 执行成功或失败,payload 均为空 |
error | 执行成功后,error 为空;执行失败后,error 为 dict 类型,包含“Code”和“Description”字段:“Code”字段表示错误类型,“Description”字段表示错误具体信息 |
attribute | 继承上个组件的 attribute 信息 |
variable | 继承上个组件的 variable 信息 |
FTP 删除文件操作,若执行成功则 payload 为空;若执行失败时输出消息 error 中会设置详细返错信息。错误输出为 dict 类型,包含“Code”和“Description”元素,“Code”表示错误类型,“Description”表示错误具体信息,例如:
案例
1. 在连接器列表中选择 FTP 连接器,然后选择 FTP 删除文件操作。
2. 输入连接器配置参数,其中域名、端口、用户名和密码设置为待连接的FTP服务器对应参数,工作路径设置为 FTP 服务器下文件处理的相对路径,默认为根路径“/”,其他参数保持默认值即可。参数填写完后可单击下方测试连接校验连接配置参数有效性。具体如下图:
3. 确认连接器配置参数填写无误后单击保存,然后设置操作配置参数,文件删除路径设为
/data/ftptest.txt
,参数输入见下图:
4. 操作配置参数设置完成后保存返回即可,然后单击右上角发布,选择发布地域后单击确定。
5. 待集成流发布成功后复制 HTTP Listener 监听路径后访问该域名即可触发流。
FTP 删除文件操作,若执行成功则返回 payload 响应结果为空。
当操作执行失败时,FTP 输出消息 error 中会设置详细返错信息。
输入参数
参数 | 数据类型 | 描述 | 是否必填 | 默认值 |
源文件路径 | string | 要复制文件的源路径支持复制单个文件和目录(包括目录下所有文件),支持表达式输入 | 是 | - |
目标文件路径 | string | 文件要复制到的目标路径支持表达式输入 | 是 | - |
创建父级目录 | bool | 是否创建不存在的父级目录 | 否 | true |
覆盖文件 | bool | 是否覆盖文件。当目标路径已存在同名源文件路径时,若 Overwrite 为 false,则抛错;若 Overwrite 为 true,则覆盖写 | 否 | false |
重命名 | string | 复制文件的新名称。如果未提供,则保留原始文件名;当目标路径已存在同名源文件路径时,可设置 RenameTo 参数命名新名称解决复制文件同名冲突支持表达式输入 | 否 | - |
输出
组件输出的 message 信息如下:
message 属性 | 值 |
payload | 执行成功或失败,payload 均为空 |
error | 执行成功后,error 为空;执行失败后,error 为 dict 类型,包含“Code”和“Description”字段:“Code”字段表示错误类型,“Description”字段表示错误具体信息 |
attribute | 继承上个组件的 attribute 信息 |
variable | 继承上个组件的 variable 信息 |
FTP 复制文件操作,若执行成功则 payload 为空;若执行失败时输出消息 error 中会设置详细返错信息。错误输出为 dict 类型,包含“Code”和“Description”元素,“Code”表示错误类型,“Description”表示错误具体信息,例如:
案例
1. 在连接器列表中选择 FTP 连接器,然后选择 FTP 复制文件操作。
2. 输入连接器配置参数,其中域名、端口、用户名和密码设置为待连接的 FTP 服务器对应参数,工作路径设置为 FTP 服务器下文件处理的相对路径,默认为根路径“/”,其他参数保持默认值即可。参数填写完后可单击下方测试连接校验连接配置参数有效性。具体如下图:
3. 确认连接器配置参数填写无误后单击保存,然后设置操作配置参数。源文件路径设为“/data/ftptest.txt”,目标文件路径设为“/data/copydir”,重命名设为“ftptestcopy.txt”,参数输入见下图:
4. 操作配置参数设置完成后保存返回即可,然后单击右上角发布,选择发布地域后单击确定。
5. 待集成流发布成功后复制 HTTP Listener 监听路径后访问该域名即可触发流。
FTP 复制文件操作,若执行成功则返回 payload 响应结果为空。
当操作执行失败时,FTP 输出消息 error 中会设置详细返错信息。
输入参数
参数 | 数据类型 | 描述 | 是否必填 | 默认值 |
文件路径 | string | 待重命名的文件路径: 当路径或文件不存在时报错 同时支持目录和文件重命名,支持表达式输入 | 是 | - |
重命名名称 | string | 文件或路径的新名称支持表达式输入 | 是 | - |
覆盖文件 | bool | 是否覆盖文件: 当 Overwrite 为 false 时,若重命名文件路径已存在则抛错 当 Overwrite 为 true 时,则直接覆盖写 | 否 | false |
输出
组件输出的 message 信息如下:
message 属性 | 值 |
payload | 执行成功或失败,payload 均为空 |
error | 执行成功后,error 为空;执行失败后,error 为 dict 类型,包含“Code”和“Description”字段:“Code”字段表示错误类型,“Description”字段表示错误具体信息 |
attribute | 继承上个组件的 attribute 信息 |
variable | 继承上个组件的 variable 信息 |
FTP 重命名文件操作,若执行成功则 payload 为空;若执行失败时输出消息 error 中会设置详细返错信息。错误输出为 dict 类型,包含“Code”和“Description”元素,“Code”表示错误类型,“Description”表示错误具体信息,例如:
案例
1. 在连接器列表中选择 FTP 连接器,然后选择 FTP 重命名文件操作。
2. 输入连接器配置参数,其中域名、端口、用户名和密码设置为待连接的 FTP 服务器对应参数,工作路径设置为 FTP 服务器下文件处理的相对路径,默认为根路径“/”,其他参数保持默认值即可。参数填写完后可单击下方测试连接校验连接配置参数有效性。具体如下图:
3. 确认连接器配置参数填写无误后单击保存,然后设置操作配置参数。文件路径设为“/data/ftptest.txt”,重命名名称设为“ftptestrename.txt”,参数输入见下图:
4. 操作配置参数设置完成后保存返回即可,然后单击右上角发布,选择发布地域后单击确定。
5. 待集成流发布成功后复制 HTTP Listener 监听路径后访问该域名即可触发流。
FTP 重命名文件操作,若执行成功则返回 payload 响应结果为空。
当操作执行失败时,FTP 输出消息 error 中会设置详细返错信息。
输入参数
参数 | 数据类型 | 描述 | 是否必填 | 默认值 |
源文件路径 | string | 要转移的文件或目录路径支持移动单个文件和目录(包括目录下所有文件),支持表达式输入 | 是 | - |
目标文件路径 | string | 文件要移动到的目标路径支持表达式输入 | 是 | - |
创建父级目录 | bool | 是否创建不存在的父级目录 | 否 | true |
覆盖文件 | bool | 是否覆盖文件。当目标路径已存在同名源文件路径时,若 Overwrite 为 false,则抛错;若 Overwrite 为 true,则覆盖写 | 否 | false |
重命名 | string | 移动文件的新名称。如果未提供,则保留原始文件名;当目标路径已存在同名源文件路径时,可设置 RenameTo 参数命名新名称解决移动文件同名冲突支持表达式输入 | 否 | - |
输出
组件输出的 message 信息如下:
message 属性 | 值 |
payload | 执行成功或失败,payload 均为空 |
error | 执行成功后,error 为空;执行失败后,error 为 dict 类型,包含“Code”和“Description”字段:“Code”字段表示错误类型,“Description”字段表示错误具体信息 |
attribute | 继承上个组件的 attribute 信息 |
variable | 继承上个组件的 variable 信息 |
FTP 移动文件操作,若执行成功则 payload 为空;若执行失败时输出消息 error 中会设置详细返错信息。错误输出为 dict 类型,包含“Code”和“Description”元素,“Code”表示错误类型,“Description”表示错误具体信息,例如:
案例
1. 在连接器列表中选择 FTP 连接器,然后选择 FTP 移动文件操作。
2. 输入连接器配置参数,其中域名、端口、用户名和密码设置为待连接的 FTP 服务器对应参数,工作路径设置为 FTP 服务器下文件处理的相对路径,默认为根路径“/”,其他参数保持默认值即可。参数填写完后可单击下方测试连接校验连接配置参数有效性。具体如下图:
3. 确认连接器配置参数填写无误后单击保存,然后设置操作配置参数。源文件路径设为“/data/ftptest.txt”,目标文件路径设为“/data/movedir”,重命名设为“ftptestmove.txt”,参数输入见下图:
4. 操作配置参数设置完成后保存返回即可,然后单击右上角发布,选择发布地域后单击确定。
5. 待集成流发布成功后复制 HTTP Listener 监听路径后访问该域名即可触发流。
FTP 移动文件操作,若执行成功则返回 payload 响应结果为空。
当操作执行失败时,FTP 输出消息 error 中会设置详细返错信息。
输入参数
参数 | 数据类型 | 描述 | 是否必填 | 默认值 |
遍历目录路径 | string | 要列出的目录的路径支持表达式输入 | 是 | |
子目录递归轮询 | bool | 是否递归包含子目录的文件和目录 | 否 | false |
起始时间 | string | 在此日期之前创建的文件将被过滤,2020-11-14T08:30:00+00:00支持表达式输入 | 否 | |
截止时间 | string | 在此日期之后创建的文件将被过滤,2020-11-15T17:30:00+00:00支持表达式输入 | 否 | |
文件名正则匹配 | String | 使用正则表达式过滤文件或目录名称 [a-z]* 支持表达式输入 | 否 | |
文件路径匹配 | String | 目录路径过滤匹配模式,只保留指定文件或目录 /mydir/ftptest.txt 支持表达式输入 | 否 | |
目录 | bool | 是否过滤目录默认为 true,表示遍历结果中包含目录类型 | 否 | true |
文件 | bool | 是否过滤文件默认为 true,表示遍历结果中包含文件类型 | 否 | true |
符号链接 | bool | 是否过滤符号链接默认为 true,表示遍历结果中包含符号链接类型 | 否 | true |
最小比特值 | int | 文件 Size 过滤最小值 | 否 | |
最大比特值 | int | 文件 Size 过滤最大值 | 否 | |
文件校验时间间隔(秒) | int | 文件大小校验等待时间(秒),范围:0~60,以判断文件是否可读。在等待时间前后执行两次 sizecheck 文件大小检测,如果两次检测都返回相同的值,即 sizecheck 期间文件没有其他修改操作则可以读取该文件。 | 否 | 0(s) |
时间戳使能 | bool | 判断是否支持根据文件的修改或创建时间戳来判断触发流,缓存持久化记录上次轮询截止时间戳作为下次轮询起始判断时间。 | 否 | false |
时间戳状态标识 | String | 当时间戳使能为 true 时,需设置非空值作为当前流 FTP 组件时间戳状态缓存持久化的唯一识别标志。 | 否 | |
输出
组件输出的 message 信息如下:
message 属性 | 值 |
payload | 执行成功后,payload 为 list 类型,list 成员为 dict 类型;执行失败后,payload 为空 |
error | 执行成功后,error 为空;执行失败后,error 为 dict 类型,包含“Code”和“Description”字段:“Code”字段表示错误类型,“Description”字段表示错误具体信息 |
attribute | 继承上个组件的 attribute 信息 |
variable | 继承上个组件的 variable 信息 |
FTP 目录遍历操作会在消息 payload 中返回每个文件的属性信息:
参数 | 数据类型 | 描述 |
Name | string | 文件名称 |
Type | string | 文件类型: File Folder SymLink |
Target | string | SymLink 对应路径 |
Size | int | 文件大小 |
Time | string | 文件最后修改时间 |
PathName | string | 文件绝对路径 |
FTP 目录遍历操作,若执行失败时输出消息 error 中会设置详细返错信息。错误输出为 dict 类型,包含“Code”和“Description”元素,“Code”表示错误类型,“Description”表示错误具体信息,例如:
案例
1. 在连接器列表中选择 FTP 连接器,然后选择 FTP 目录遍历操作。
2. 输入连接器配置参数,其中域名、端口、用户名和密码设置为待连接的 FTP 服务器对应参数,工作路径设置为 FTP 服务器下文件处理的相对路径,默认为根路径“/”,其他参数保持默认值即可。参数填写完后可单击下方测试连接校验连接配置参数有效性。具体如下图:
3. 确认连接器配置参数填写无误后单击保存,然后设置操作配置参数。遍历目录路径设为“/data”,其他参数输入见下图:
4. 操作配置参数设置完成后保存返回即可,然后单击右上角发布,选择发布地域后单击确定。
5. 待集成流发布成功后复制HTTP Listener监听路径后访问该域名即可触发流。
FTP 返回 payload 响应结果如下,即为“/data”目录下遍历文件的属性列表。
当操作执行失败时,FTP 输出消息 error 中会设置详细返错信息。
输入参数
参数 | 数据类型 | 描述 | 是否必填 |
目录创建路径 | string | 新创建目录的名称默认支持创建多级目录,当路径已存在时返错支持表达式输入 | 是 |
输出
组件输出的 message 信息如下:
message 属性 | 值 |
payload | 执行成功或失败,payload 均为空 |
error | 执行成功后,error 为空;执行失败后,error 为 dict 类型,包含“Code”和“Description”字段:“Code”字段表示错误类型,“Description”字段表示错误具体信息 |
attribute | 继承上个组件的 attribute 信息 |
variable | 继承上个组件的 variable 信息 |
FTP 目录创建操作,若执行成功则 payload 为空;若执行失败时输出消息 error 中会设置详细返错信息。错误输出为dict类型,包含“Code”和“Description”元素,“Code”表示错误类型,“Description”表示错误具体信息,例如:
案例
1. 在连接器列表中选择 FTP 连接器,然后选择 FTP 目录创建操作。
2. 输入连接器配置参数,其中域名、端口、用户名和密码设置为待连接的 FTP 服务器对应参数,工作路径设置为 FTP 服务器下文件处理的相对路径,默认为根路径“/”,其他参数保持默认值即可。参数填写完后可单击下方测试连接校验连接配置参数有效性。具体如下图:
3. 确认连接器配置参数填写无误后单击保存,然后设置操作配置参数,文件路径设为“/data/a/b/c”,参数输入见下图:
4. 操作配置参数设置完成后保存返回即可,然后单击右上角发布,选择发布地域后单击确定。
5. 待集成流发布成功后复制 HTTP Listener 监听路径后访问该域名即可触发流。
FTP 目录创建操作,若执行成功则返回 payload 响应结果为空。
当操作执行失败时,FTP 输出消息 error 中会设置详细返错信息。