SFTP File


SFTP File 节点可以对 SFTP 服务器中的文件进行下载和移动,按间隔时间扫描并下载指定目录下的所有文件,并可以在文件下载后对原文件进行移动或删除。后续可通过在当前流中增加如 File 等 Action 类型的节点对文件进行读写等操作。


开始前准备

使用该节点前,确保你已经在 EnOS 管理控制台 > 连接配置 中配置 SFTP 服务器的连接。更多关于 SFTP 服务器连接的信息,参见 连接配置


节点类型

Input。


输入和输出能力

该节点没有入口点,仅有 1 个出口点。


输出为在指定目录下扫描到的文件,以文件路径格式保存在 metadata 中。每一个文件都会生成一条输出日志,可通过表达式 ${metadata.files} 引用。


节点属性

../../_images/sftp_file.png


名称

该节点的名称。


目标连接

选择一个 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": {}
}


相关节点