SFTP File¶
SFTP File 节点可以对 SFTP 服务器中的文件进行下载和移动,按间隔时间扫描并下载指定目录下的所有文件,并可以在文件下载后对原文件进行移动或删除。后续可通过在当前流中增加如 File 等 Action 类型的节点对文件进行读写等操作。
开始前准备¶
使用该节点前,确保你已经在 EnOS 管理控制台 > 连接配置 中配置 SFTP 服务器的连接。更多关于 SFTP 服务器连接的信息,参见 连接配置。
节点类型¶
Input。
输入和输出能力¶
该节点没有入口点,仅有 1 个出口点。
输出为在指定目录下扫描到的文件,以文件路径格式保存在 metadata 中。每一个文件都会生成一条输出日志,可通过表达式 ${metadata.files}
引用。
节点属性¶
名称
该节点的名称。
目标连接
选择一个 SFTP 服务器。
文件目录
待扫描的服务器文件目录。
以正斜杠开头,例如输入
/download/
,表示扫描并下载 download 目录下的所有文件。支持扫描单个文件,例如输入
/download/test.csv
,表示扫描并下载 download 目录下的 test.csv 文件。支持通配符
?
和*
。支持多目录并列扫描,不同目录之间用半角逗号(,)隔开。
间隔时间
自动扫描文件目录的频率,单位为秒。输入间隔时间,可令该节点具有自触发功能,按照间隔时间自动扫描指定目录,获取文件。可用的间隔时间范围为 1-86400 秒,默认值为 60 秒。
备注
由于每次下载文件和对文件进行处理需要耗费一定的时间,当下载文件和处理文件的时间超过设定的 间隔时间 时,流的实际触发时间可能存在延迟。
下载文件后
自动删除原文件或目录:文件下载完成后,将自动删除 文件目录 中扫描到的文件。例如:在 文件目录 中输入
/download/
并打开当前项,则表示文件下载完成后,将自动删除服务器上/download/
目录下的所有文件。支持删除单个文件,支持同时对多目录进行操作。
移动到其他目录:文件下载完成后,将 文件目录 中输入的目录移动到服务器的其他目录。
输入目标目录,以正斜杠开头。例如,在 文件目录 中输入
/download/
,并在当前项中输入/move/
,则表示文件下载完成后,将服务器上的/download/
目录下的内容移动到/move/
目录中,/download/
目录将删除。如果目标目录不存在,则会在服务器中自动创建。支持对单个文件进行操作。
支持表达式
${msg.XXX}
,表达式引用自当前流最后一个节点的输出 msg。例如:在 文件目录 中输入/download/
,并在当前项中输入/download/${msg.test}
,如果最后一个节点的输出 msg 中有msg={"test":"123"}
,则表示文件下载完成后,将服务器上的/download/
目录及其下的文件移动到/download/123
目录。支持通过当前项重命名目录。例如,在 文件目录 中输入
/download/123.csv
,并在当前项中输入/download/456.csv
,实际效果等同于将/download/123.csv
目录重命名为/download/456.csv
。如果在 文件目录 中使用通配符,或通过半角逗号(,)并列输入多目录,同时在当前项中输入目标目录,则会导致 文件目录 中匹配的所有文件都移动到目标目录。
描述
该节点的描述。
使用限制¶
下载的最大单个文件大小: 100M
可用的间隔时间范围:1-86400 秒
由于 SFTP 服务器并非 EnOS 管理,EnOS 不保证每次连接都能成功,连接问题可能是由于服务器停机或其他 EnOS 无法控制的因素造成。
示例¶
输入示例¶
该节点没有输入 msg。
输出示例¶
在文件目录中扫描到的每一个文件都会产生一条输出日志,如:
{
"MetaData": {
"files": "[\"/var/data/sftp/test.csv\"]"
},
"Body": {}
}