S3 File


S3 File 节点可以对 AWS S3 服务器中的文件进行下载和移动,按间隔时间和指定 URI 扫描存储桶并下载单个文件或多个文件。后续可通过在当前流中增加如 File 等 Action 类型的节点对文件进行读写等操作。


如果仅需要单次连接 AWS S3 服务器并下载文件,推荐通过 AWS S3 节点实现。

前提条件

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

节点类型

Input。

输入和输出能力

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


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

节点属性

../../_images/s3_file.png


名称

该节点的名称。


目标连接

选择一个 S3 服务器。


存储桶名称

需要扫描的 S3 存储桶名称。


URI

待扫描的文件 URI。如有需要,使用分隔符(/)将前缀和文件名分开。

  • 支持输入前缀扫描所有文件,例如输入 download/,表示扫描并下载前缀为 download 的所有文件。
  • 支持扫描单个文件,例如输入 download/test.csv,表示扫描并下载前缀为 download 的 test.csv 文件。
  • 支持扫描文件名相同但文件格式不同的文件,例如输入 download/test,表示扫描并下载前缀为 download 的名为 test 的所有格式文件。文件名必须完全匹配,不支持扫描文件名不全的文件。
  • 支持扫描存储桶的根级别中出现的文件,例如输入 test.csv,表示扫描并下载位于存储桶根级别的 test.csv 文件。
  • 不支持通配符,不支持输入多条 URI。


间隔时间

自动扫描的频率,单位为秒。输入间隔时间,可令该节点具有自触发功能,按照间隔时间自动扫描指定目录,获取文件。可用的间隔时间范围为 1-86400 秒,默认值为 60 秒。


注解

由于每次下载文件和对文件进行处理需要耗费一定的时间,当下载文件和处理文件的时间超过设定的 间隔时间 时,流的实际触发时间以下载和处理文件的时间为准。


下载文件后

  • 自动删除原文件:文件下载完成后,将自动删除 URI 中扫描到的文件。例如:在 URI 中输入 download/ 并打开当前项,则表示文件下载完成后,将自动删除前缀为 download/ 的所有文件。


  • 重命名原文件:文件下载完成后,将 URI 中的原文件重命名。如有需要,使用分隔符(/)将前缀和文件名分开。
    • 支持重命名前缀。例如,在 URI 中输入 download/,并在当前项中输入 rename/,则表示文件下载完成后,将文件 URI 中的 download/ 前缀重命名为 rename/。如果重命名后的 URI 已存在,将覆盖已有的文件。
    • 支持重命名单个文件。例如,在 URI 中输入 download/test.csv,并在当前项中输入 download/123.csv,则表示文件下载完成后,将 test.csv 文件重命名为 123.csv。如果重命名后的文件已存在,将覆盖已有的文件。
    • 支持表达式 ${msg.XXX},表达式引用自当前流最后一个节点的输出 msg。例如:在 URI 中输入 download/test.csv ,并在当前项中输入 download/${msg.expression}.csv ,如果最后一个节点的输出 msg 中有 msg={"expression":"123"},则表示文件下载完成后,将前缀为 download/test.csv 文件 URI 改为 download/123.csv


描述

该节点的描述。

使用限制

  • 下载的最大单个文件大小: 100M
  • 可用的间隔时间范围:1-86400 秒
  • 不支持通配符,不支持输入多条 URI。
  • 由于 AWS S3 服务器并非 EnOS 管理,EnOS 不保证每次连接都能成功,连接问题可能是由于服务器停机或其他 EnOS 无法控制的因素造成。

示例

输入示例

该节点没有输入 msg。

输出示例

在文件目录中扫描到的每一个文件都会产生一条输出日志,如:

{
  "MetaData": {
    "files": "[\"/var/data/aws/test.xml\"]"
  },
  "Body": {}
}

相关节点