Skip to main content

PutFile

将输入数据流的内容输出到指定的文件中

参数说明

目录

指定目标文件存储的文件夹

文件名

指定目标文件名,默认为输入数据流的属性值,即${filename},该值是一个纳秒的时间戳值, 比如:24749105929099。

冲突解决策略

当文件已经存在时,决定如何处理的策略选择:

  • 替换,则以输入数据流的内容替换原文件,实际上是先删除原文件,再写入新内容。
  • 保留原始,不对原始文件进行任何修改,忽略写入新文件。
  • 失败处理,将输入数据流输出到失败连线,并惩罚输入流。
  • 追加,基于原始文件,追加新内容到文件中。

创建不存在目录

如果选择不创建,且目录不存在,将输入数据流输出到失败连线,并惩罚输入流。

最大文件数

用于控制”目录“参数所指的目标目录里允许的写入的最大文件数,如果设置了限制,则超过该值,将输入数据流输出到失败连线,并惩罚输入流。

修改时间

可指定文件的修改时间,且格式为:yyyy-MM-dd'T'HH:mm:ssZ

也支持表达式,比如数据流的属性: ${file.lastModifiedTime}

如果格式错误而导致解析出错,否则会记录警告级别的错误日志,并忽略该设置。

权限

支持设置文件权限,同时支持数字或字母形式,即可设置诸如:750 或者 rwxr-x---

且依赖于系统是否允许设置,否则可能报错并记录警告级别的错误日志,并忽略权限设置。

所有者

支持设置文件的拥有者(owner)的名字,该名字将是当前系统中有效的用户名,否则将记录警告级别的错误日志,然后忽略该参数设置。

用户组

支持设置文件的用户组(group)的名字,该名字将是当前系统中有效的用户组名,否则将记录警告级别的错误日志,然后忽略该参数设置。

示例

所有生成输入数据流的内容都写入同一个文本文件"test.txt"中。

GenerateFlowFile 配置

为避免生成过多数据,将组件”调度“中的”运行安排“设置为5 s

再将”自定义文本“设置为:

Hello world! Time flies... ${now()}

PutFile 设置

设置了”目录“、”文件名“为指定的文件名、”冲突解决策略“改为追加。

结果

最后文件内容将持续添加新的内容,诸如:

Hello world! Time flies... Fri Apr 26 16:30:07 CST 2019
Hello world! Time flies... Fri Apr 26 16:30:12 CST 2019
Hello world! Time flies... Fri Apr 26 16:30:17 CST 2019
Hello world! Time flies... Fri Apr 26 16:30:22 CST 2019
Hello world! Time flies... Fri Apr 26 16:30:27 CST 2019
Hello world! Time flies... Fri Apr 26 16:30:32 CST 2019

流程模板

参见附件(请右键另存保存):putfile-append示例