S3 File¶
S3 File 节点可以对 AWS S3 服务器中的文件进行下载和移动,按间隔时间和指定 URI 扫描存储桶并下载单个文件或多个文件。后续可通过在当前流中增加如 File 等 Action 类型的节点对文件进行读写等操作。
如果仅需要单次连接 AWS S3 服务器并下载文件,推荐通过 AWS S3 节点实现。
前提条件¶
使用该节点前,确保你已经在 EnOS 管理控制台 > 连接配置 中配置 S3 服务器的连接。更多关于 S3 服务器连接的信息,参见 连接配置。
节点类型¶
Input。
输入和输出能力¶
该节点没有入口点,仅有 1 个出口点。
输出为在指定存储桶中根据 URI 扫描到的文件,以文件路径格式保存在 metadata 中。每一个文件都会生成一条输出日志,下个节点中可通过表达式 ${metadata.files}
引用。
节点属性¶
名称
该节点的名称。
目标连接
选择一个 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": {}
}