简介
SSH 文件传输协议(SSH File Transfer Protocol,也称 Secret File Transfer Protocol 即安全文件传送协议)是一 数据流 连接,提供文件访问、传输和管理功能的 网络传输协议。
SSH(Secure Shell):安全外壳协议 ,由 IETF 的网络小组(Network Working Group)所制定;SSH 为建立在应用层基础上的安全协议。SSH 是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题。
SFTP 与 FTP 有着几乎一样的语法和功能。SFTP 为 SSH 的其中一部分,是一种传输档案至 Blogger 伺服器的安全方式。其实在 SSH 软件包中,已经包含一个叫作 SFTP 的安全文件信息传输子系统,SFTP 本身没有单独的守护进程,它必须使用 sshd 守护进程(端口号默认是22)来完成相应的连接和答复操作,所以从某种意义上来说,SFTP 并不像一个服务器程序,而更像是一个客户端程序。
SFTP 与 FTP 的主要区别:
连接方式:FTP 使用 TCP 端口21上的控制连接建立连接,而 SFTP 是在客户端和服务器之间通过 SSH 协议(TCP 端口22)建立的安全连接来传输文件。
安全性:SFTP 使用加密传输认证信息和传输的数据,所以使用 SFTP 相对于 FTP 是非常安全。
效率:SFTP 传输方式使用加密解密技术,所以传输效率比普通的 FTP 要低得多。
SFTP(SFTP Connector)提供对 SFTP 服务器上的文件和文件夹的访问。SFTP 连接器操作通过 SFTP(安全文件传输协议)协议管理文件传输。连接器的主要特点包括:
根据需要读取文件或列出目录内容。
支持常见的 SFTP 操作,如创建目录、复制、移动、重命名、删除文件。
支持锁定文件。
文件匹配功能。
连接器配置
通用配置
参数 | 数据类型 | 描述 | 是否必填 | 默认值 |
域名 | string | SFTP 服务器域名 | 是 | - |
端口号 | int | SFTP 服务器端口号 | 否 | 22 |
用户名 | string | SFTP 服务器的用户名。如果服务器需要身份验证,则为必需参数 | 否 | - |
密码 | string | SFTP 服务器的密码。如果服务器需要身份验证,则为必需参数 | 否 | - |
工作路径 | string | 指定为此连接器所使用的每个相对路径的根目录。如果未提供,则默认为远程服务器默认值 | 否 | / |
SSH 公钥认证 | bool | 是否开启 SSH 公钥认证 | 否 | false |
私钥认证文件 | string | 私钥认证文件 | 否 | - |
认证文件密码 | string | 私钥认证文件密码。如果没有提供标识文件 Identity File,参数将被忽略 | 否 | - |
KNOWN_HOSTS 密钥验证 | bool | 是否开启 knownHosts 密钥验证 | 否 | false |
KNOWN_HOSTS 密钥验证文件 | string | 如果已提供,客户机将根据引用文件中的 knownHosts 密钥验证服务器的密钥。如果服务器密钥与文件中的密钥不匹配,连接将被中止 | 否 | - |
高级配置
参数 | 数据类型 | 描述 | 是否必填 | 默认值 |
代理域名 | string | 代理服务器域名 | 否 | - |
代理端口号 | int | 代理服务器端口号 | 否 | - |
代理用户名 | string | 代理服务器用户名 | 否 | - |
代理密码 | string | 代理服务器密码 | 否 | - |
代理协议 | enum | 代理服务器协议:HTTP、SOCKS4、SOCKS5 | 否 | - |
重连接频率(秒) | int | 重连接频率(单位s)(范围:0~300) | 否 | 10(s) |
连接超时时间(秒) | int | 连接超时等待时间(单位s)(范围:0~300) | 否 | 60(s) |
响应超时时间(秒) | int | 请求响应超时等待时间(单位s)(范围:0~300) | 否 | 60(s) |
连接器配置界面如下:
操作配置
输入参数
参数 | 数据类型 | 描述 | 是否必填 | 默认值 |
文件路径 | string | 读文件路径 | 是 | |
文件锁 | bool | 是否开启文件锁 | 否 | false |
l文件锁等待时间(秒) | int | 文件锁等待时间(秒)(范围:0~60) | 否 | 30(s) |
文件校验时间间隔(秒) | int | 文件大小校验等待时间(秒) ,以判断文件是否可读。在等待时间前后执行两次 sizecheck 文件大小检测。如果两次检测都返回相同的值,即 sizecheck 期间文件没有其他修改操作则可以读取该文件(范围:0~60) | 否 | 0(s) |
输出
组件输出的 message 信息如下:
message 属性 | 值 |
payload | 执行成功后,payload 为 Entity 类型;执行失败后,payload 为空 |
error | 执行成功后,error 为空;执行失败后,error 为 dict 类型,包含“Code”和“Description”字段:“Code”字段表示错误类型,“Description”字段表示错误具体信息 |
attribute | 继承上个组件的 attribute 信息 |
variable | 继承上个组件的 variable 信息 |
SFTP 读取文件操作会返回文件内容,根据文件名后缀设置消息的 mimeType 和 encoding 并放到消息 payload 中,后续可通过 dataway 表达式直接访问。
SFTP 读取文件操作若执行失败时输出消息 error 中会设置详细返错信息。错误输出为 dict 类型,包含“Code”和“Description”元素,“Code”表示错误类型,“Description”表示错误具体信息,例如:
案例
1. 在连接器列表中选择 SFTP 连接器,然后选择 SFTP 读取文件操作。
2. 输入连接器配置参数,其中域名、端口、用户名和密码设置为待连接的 SFTP 服务器对应参数,工作路径设置为 SFTP 服务器下文件处理的相对路径,默认为根路径“/”,其他参数保持默认值即可。参数填写完后可单击下方测试连接校验连接配置参数有效性。具体如下图:
3. 确认连接器配置参数填写无误后单击保存,然后设置操作配置参数。文件路径设为“/data/sftptest.txt”,参数输入见下图:
4. 操作配置参数设置完成后保存返回即可,然后单击右上角发布,选择发布地域后单击确定。
5. 待集成流发布成功后复制 HTTP Listener 监听路径后访问该域名即可触发流。
SFTP 返回 payload 响应结果如下,即为“/data/sftptest.txt”文件内容。
当操作执行失败时,SFTP 输出消息 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 信息 |
SFTP 写文件操作,若执行成功则 payload 为空;若执行失败时输出消息 error 中会设置详细返错信息。错误输出为 dict 类型,包含“Code”和“Description”元素,“Code”表示错误类型,“Description”表示错误具体信息,例如:
案例
1. 在连接器列表中选择 SFTP 连接器,然后选择 SFTP 写文件操作。
2. 输入连接器配置参数,其中域名、端口、用户名和密码设置为待连接的 SFTP 服务器对应参数,工作路径设置为 SFTP 服务器下文件处理的相对路径,默认为根路径“/”,其他参数保持默认值即可。参数填写完后可单击下方测试连接校验连接配置参数有效性。具体如下图:
3. 确认连接器配置参数填写无误后单击保存,然后设置操作配置参数。文件路径设为“/data/sftptest.txt”,参数输入见下图:
4. 操作配置参数设置完成后保存返回即可,然后单击右上角发布,选择发布地域后单击确定。
5. 待集成流发布成功后复制 HTTP Listener 监听路径后访问该域名即可触发流。
SFTP 写文件操作若执行成功则返回 payload 响应结果为空。
当操作执行失败时,SFTP 输出消息 error 中会设置详细返错信息。
输入参数
参数 | 数据类型 | 描述 | 是否必填 |
文件删除路径 | string | 待删除的文件或路径: 当文件或路径不存在时抛错 支持删除单个文件以及目录(包括目录下所有文件) 如果文件没有被锁定,则删除路径指向的文件,支持表达式输入 | 是 |
输出
组件输出的 message 信息如下:
message 属性 | 值 |
payload | 执行成功或失败,payload 均为空 |
error | 执行成功后,error 为空;执行失败后,error 为 dict 类型,包含“Code”和“Description”字段:“Code”字段表示错误类型,“Description”字段表示错误具体信息 |
attribute | 继承上个组件的 attribute 信息 |
variable | 继承上个组件的 variable 信息 |
SFTP 删除文件操作若执行成功 payload 为空,若执行失败时输出消息 error 中会设置详细返错信息。错误输出为 dict 类型,包含“Code”和“Description”元素,“Code”表示错误类型,“Description”表示错误具体信息,例如:
案例
1. 在连接器列表中选择 SFTP 连接器,然后选择 SFTP 删除文件操作。
2. 输入连接器配置参数,其中域名、端口、用户名和密码设置为待连接的 SFTP 服务器对应参数,工作路径设置为 SFTP 服务器下文件处理的相对路径,默认为根路径“/”,其他参数保持默认值即可。参数填写完后可单击下方测试连接校验连接配置参数有效性。具体如下图:
3. 确认连接器配置参数填写无误后单击保存,然后设置操作配置参数。文件删除路径设为“/data/sftptest.txt”,参数输入见下图:
4. 操作配置参数设置完成后保存返回即可,单击右上角发布,选择发布地域后单击确定。
5. 待集成流发布成功后复制 HTTP Listener 监听路径后访问该域名即可触发流。
SFTP 删除文件操作若执行成功则返回 payload 响应结果为空。
当操作执行失败时,SFTP 输出消息 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 信息 |
SFTP 复制文件操作若执行成功 payload 为空,若执行失败时输出消息 error 中会设置详细返错信息。错误输出为 dict 类型,包含“Code”和“Description”元素,“Code”表示错误类型,“Description”表示错误具体信息,例如:
案例
1. 在连接器列表中选择 SFTP 连接器,然后选择 SFTP 复制文件操作。
2. 输入连接器配置参数,其中域名、端口、用户名和密码设置为待连接的 SFTP 服务器对应参数,工作路径设置为 SFTP 服务器下文件处理的相对路径,默认为根路径“/”,其他参数保持默认值即可。参数填写完后可单击下方测试连接校验连接配置参数有效性。具体如下图:
3. 确认连接器配置参数填写无误后单击保存,然后设置操作配置参数。源文件路径设为“/data/sftptest.txt”,目标文件路径设为“/data/copydir”,重命名设为“sftptestcopy.txt”,参数输入见下图:
4. 操作配置参数设置完成后保存返回即可,单击右上角发布,选择发布地域后单击确定。
5. 待集成流发布成功后复制 HTTP Listener 监听路径后访问该域名即可触发流。
SFTP 复制文件操作若执行成功则返回 payload 响应结果为空。
当操作执行失败时,SFTP 输出消息 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 信息 |
SFTP 重命名文件操作若执行成功则 payload 为空,若执行失败时输出消息 error 中会设置详细返错信息。错误输出为 dict 类型,包含“Code”和“Description”元素,“Code”表示错误类型,“Description”表示错误具体信息,例如:
案例
1. 在连接器列表中选择 SFTP 连接器,然后选择 SFTP 重命名文件操作。
2. 输入连接器配置参数,其中域名、端口、用户名和密码设置为待连接的 SFTP 服务器对应参数,工作路径设置为 SFTP 服务器下文件处理的相对路径,默认为根路径“/”,其他参数保持默认值即可。参数填写完后可单击下方测试连接校验连接配置参数有效性。具体如下图:
3. 确认连接器配置参数填写无误后单击保存,然后设置操作配置参数。文件路径设为“/data/sftptest.txt”,重命名名称设为“sftptestrename.txt”,参数输入见下图:
4. 操作配置参数设置完成后保存返回即可,单击右上角发布,选择发布地域后单击确定。
5. 待集成流发布成功后复制 HTTP Listener 监听路径后访问该域名即可触发流。
SFTP 重命名文件操作若执行成功则返回 payload 响应结果为空。
当操作执行失败时,SFTP 输出消息 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 信息 |
SFTP 移动文件操作若执行成功 payload 为空,若执行失败时输出消息 error 中会设置详细返错信息。错误输出为 dict 类型,包含“Code”和“Description”元素,“Code”表示错误类型,“Description”表示错误具体信息,例如:
案例
1. 在连接器列表中选择 SFTP 连接器,然后选择 SFTP 移动文件操作。
2. 输入连接器配置参数,其中域名、端口、用户名和密码设置为待连接的 SFTP 服务器对应参数,工作路径设置为 SFTP 服务器下文件处理的相对路径,默认为根路径“/”,其他参数保持默认值即可。参数填写完后可单击下方测试连接校验连接配置参数有效性。具体如下图:
3. 确认连接器配置参数填写无误后单击保存,然后设置操作配置参数。源文件路径设为“/data/sftptest.txt”,目标文件路径设为“/data/movedir”,重命名设为“sftptestmove.txt”,参数输入见下图:
4. 操作配置参数设置完成后保存返回即可,单击右上角发布,选择发布地域后单击确定。
5. 待集成流发布成功后复制 HTTP Listener 监听路径后访问该域名即可触发流。
SFTP 移动文件操作若执行成功则返回 payload 响应结果为空。
当操作执行失败时,SFTP 输出消息 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 | 文件大小校验等待时间(秒),以判断文件是否可读。在等待时间前后执行两次 sizecheck 文件大小检测。如果两次检测都返回相同的值,即 sizecheck 期间文件没有其他修改操作则可以读取该文件。(范围:0~60) | 否 | 0(s) |
时间戳使能 | bool | 判断是否支持根据文件的修改或创建时间戳来判断触发流,缓存持久化记录上次轮询截止时间戳作为下次轮询起始判断时间。 | 否 | false |
时间戳状态标识 | String | 当时间戳使能为 true 时,需设置非空值作为当前流 SFTP 组件时间戳状态缓存持久化的唯一识别标志。 | 否 | - |
输出
组件输出的 message 信息如下:
message 属性 | 值 |
payload | 执行成功后,payload 为 list 类型,list 成员为 dict 类型;执行失败后,payload 为空 |
error | 执行成功后,error 为空;执行失败后,error 为 dict 类型,包含“Code”和“Description”字段:“Code”字段表示错误类型,“Description”字段表示错误具体信息 |
attribute | 继承上个组件的 attribute 信息 |
variable | 继承上个组件的 variable 信息 |
SFTP 目录遍历操作会在消息 payload 中返回每个文件的属性信息:
参数 | 数据类型 | 描述 |
Name | string | 文件名称 |
Type | string | 文件类型: File Folder SymLink |
Target | string | SymLink 对应路径 |
Size | int | 文件大小 |
Time | string | 文件最后修改时间 |
PathName | string | 文件绝对路径 |
SFTP 目录遍历操作若执行失败时输出消息 error 中会设置详细返错信息。错误输出为 dict 类型,包含“Code”和“Description”元素,“Code”表示错误类型,“Description”表示错误具体信息,例如:
案例
1. 在连接器列表中选择 SFTP 连接器,然后选择 SFTP 目录遍历操作。
2. 输入连接器配置参数,其中域名、端口、用户名和密码设置为待连接的 SFTP 服务器对应参数,工作路径设置为 SFTP 服务器下文件处理的相对路径,默认为根路径“/”,其他参数保持默认值即可。参数填写完后可单击下方测试连接校验连接配置参数有效性。具体如下图:
3. 确认连接器配置参数填写无误后单击保存,然后设置操作配置参数。遍历目录路径设为“/data”,其他参数输入见下图:
4. 操作配置参数设置完成后保存返回即可,然后单击右上角发布,选择发布地域后单击确定。
5. 待集成流发布成功后复制 HTTP Listener 监听路径后访问该域名即可触发流。
SFTP 返回 payload 响应结果如下,即为“/data”目录下遍历文件的属性列表。
当操作执行失败时,SFTP 输出消息 error 中会设置详细返错信息。
输入参数
参数 | 数据类型 | 描述 | 是否必填 | 默认值 |
目录创建路径 | string | 新创建目录的名称默认支持创建多级目录,当路径已存在时返错支持表达式输入 | 是 | - |
输出
组件输出的 message 信息如下:
message 属性 | 值 |
payload | 执行成功或失败,payload 均为空 |
error | 执行成功后,error 为空;执行失败后,error 为 dict 类型,包含“Code”和“Description”字段:“Code”字段表示错误类型,“Description”字段表示错误具体信息 |
attribute | 继承上个组件的 attribute 信息 |
variable | 继承上个组件的 variable 信息 |
SFTP 目录创建操作若执行成功 payload 为空,若执行失败时输出消息 error 中会设置详细返错信息。错误输出为 dict 类型,包含“Code”和“Description”元素,“Code”表示错误类型,“Description”表示错误具体信息,例如:
案例
1. 在连接器列表中选择 SFTP 连接器,然后选择 SFTP 目录创建操作。
2. 输入连接器配置参数,其中域名、端口、用户名和密码设置为待连接的SFTP服务器对应参数,工作路径设置为 SFTP 服务器下文件处理的相对路径,默认为根路径“/”,其他参数保持默认值即可。参数填写完后可单击下方测试连接校验连接配置参数有效性。具体如下图:
3. 确认连接器配置参数填写无误后单击保存,然后设置操作配置参数。文件路径设为“/data/a/b/c”,参数输入见下图:
4. 操作配置参数设置完成后保存返回即可,然后单击右上角发布,选择发布地域后单击确定。
5. 待集成流发布成功后复制 HTTP Listener 监听路径后访问该域名即可触发流。
SFTP 目录创建操作若执行成功则返回 payload 响应结果为空。
当操作执行失败时,SFTP 输出消息 error 中会设置详细返错信息。