ListS3 2025.10.9.21

捆绑包

org.apache.nifi | nifi-aws-nar

描述

从 S3 桶中检索对象列表。对于列出的每个对象,创建一个代表该对象的 FlowFile,以便可以将其与 FetchS3Object 一起提取。该处理器仅在集群中的主节点上运行。如果主节点发生变化,新的主节点将从前一个节点中断的地方继续,而不是复制所有数据。

标签

AWS、Amazon、S3、list

输入要求

FORBIDDEN

支持敏感的动态属性

false

属性

属性

描述

AWS 凭据提供商服务

用于获取 AWS 凭据提供商的控制器服务

要与之交互的 S3 桶

通信超时

超时之前为与 AWS 建立连接或从 AWS 接收数据而等待的时间。

自定义签名器类名称

自定义签名器类的完全限定类名。签名器必须实现 com.amazonaws.auth.Signer 接口。

自定义签名器模块位置

以逗号分隔的文件和/或目录路径列表,这些文件和/或目录包含自定义签名器的 JAR 文件及其依赖关系(如果有)。

分隔符

用于分隔桶内目录的字符串。请查阅 AWS 文档以正确使用此字段。

端点替换 URL

要使用的端点 URL 而不是 AWS 默认端点,包括架构、主机、端口和路径。AWS 库会根据 AWS 区域选择端点 URL,但此属性会替换所选端点 URL,允许与其他与 S3 兼容的端点一起使用。

Entity Tracking Initial Listing Target

指定应如何处理初始列表。由“跟踪实体”策略使用。

Entity Tracking State Cache

列出的实体存储在指定的缓存存储器中,这样该处理器在 NiFi 重启后或主节点发生更改时可以恢复列出。“跟踪实体”策略要求在最后一个“跟踪时间窗口”内提供所有列出的实体的跟踪信息。为了支持大量实体,该策略使用 DistributedMapCache 而非托管状态。缓存键格式为“ListedEntities::{processorId}(::{nodeId})”。如果它跟踪每个节点列出的实体,则会添加可选的“::{nodeId}”部分以单独管理状态。例如,集群范围缓存键 ='ListedEntities::8dda2321-0164-1000-50fa-3042fe7d6a7b',每节点缓存键 ='ListedEntities::8dda2321-0164-1000-50fa-3042fe7d6a7b::nifi-node3' 存储的缓存内容是 Gzipped JSON 字符串。目标列表配置更改时,缓存键将被删除。由“跟踪实体”策略使用。

Entity Tracking Time Window

指定该处理器应跟踪已列出的实体多长时间。“跟踪实体”策略可以选择时间戳在指定时间窗口内的任何实体。例如,如果设置为“30 分钟”,则在该处理器运行时,任何具有最近 30 分钟时间戳的实体都将成为列表目标。如果满足以下条件之一,则列出实体被视为“新的/已更新的”,并发出 FlowFile:1. 不存在于已列出的实体中;2. 具有比缓存实体更新的时间戳;3. 与缓存实体的大小不同。如果缓存实体的时间戳早于指定的时间窗口,则该实体将从缓存的已列出实体中移除。由“跟踪实体”策略使用。

列表类型

指定是使用原始列表对象还是较新的列表对象版本 2 端点。

列表批处理大小

如果不使用记录写入器,则此属性用于指定应在单次批处理中列出多少个 S3 对象。达到此数量后,已创建的 FlowFiles 将被传输出处理器。将此值设置得较低可能会通过在完整列表完成前发出 FlowFiles 来降低延迟。但是,这样会显著降低性能。较大的值可能需要更多内存来存储所有信息,然后再发出 FlowFiles。如果使用记录写入器,则此属性会被忽略,因为记录写入器的主要优点之一是能够将整个列表作为单个 FlowFile 发出。

列表策略

指定如何确定新的/更新的实体。有关详细信息,请参阅每种策略的描述。

对象最大存留时间

S3 对象可以考虑的最大时间范围;任何超过此时间(根据上次修改日期)的对象都将被忽略

对象最小存留时间

S3 对象可以考虑的最小时间范围;任何不足此时间(根据上次修改日期)的对象都将被忽略

前缀

用于筛选对象列表的前缀。请勿以正斜杠“/”开头。在大多数情况下,应当以正斜杠“/”结尾。

记录写入器

指定用于创建列表的记录写入器。如果未指定,则将为列出的每个实体创建一个 FlowFile。如果指定了记录写入器,则所有实体都将写入单个 FlowFile,而不是向单个 FlowFiles 添加属性。

区域

要连接的 AWS 区域。

请求者付费

如果为 true,则表示请求者同意支付与列出 S3 桶相关的任何费用。这会将“x-amz-request-payer”标头设置为“requester”。请注意,当“Use Versions”为“true”时,此设置不适用。

SSL Context Service

指定可选的 SSL Context Service,如果提供该服务,将用于创建连接

签名器替换

默认情况下,AWS S3 库使用签名版本 4,但此属性允许您指定版本 2 签名器以支持较早的 S3 兼容服务,甚至可以插入自己的自定义签名器实现。

使用版本

指定是否使用 S3 版本(如果适用)。如果为 false,则仅返回每个对象的最新版本。

写入对象标签

如果设置为“True”,则与 S3 对象关联的标签将写入为 FlowFile 属性

写入用户元数据

如果设置为“True”,则用户定义的与 S3 对象关联的元数据将被添加到 FlowFile 属性/记录中

proxy-configuration-service

指定代理配置控制器服务来代理网络请求。

状态管理

范围

描述

CLUSTER

执行密钥列表后,系统将存储最新密钥的时间戳以及具有相同时间戳的其他密钥。这允许处理器在下次运行时,仅列出在此日期之后添加或修改的密钥。状态存储在整个集群中,因此该处理器只能在主节点上运行,如果选择了新的主节点,则新节点可以从前一个节点中断的地方继续,而无需复制数据。

关系

名称

描述

success

FlowFiles 成功处理后,将路由到此关系。

写入属性

名称

描述

s3.bucket

S3 桶的名称

s3.region

S3 桶的区域

filename

文件的名称

s3.etag

可以用来查看文件是否已更改的 ETag

s3.isLatest

一个布尔值,表示这是否是对象的最新版本

s3.lastModified

自 UTC 时间纪元以来的最后修改时间(以毫秒为单位)

s3.length

对象的大小(以字节为单位)

s3.storeClass

对象的存储类别

s3.version

对象的版本(如果适用)

s3.tag.___

如果“写入对象标签”设置为“True”,则与列出的 S3 对象关联的标签将作为 Flowfile 属性的一部分写入

s3.user.metadata.___

如果“写入用户元数据”设置为“True”,则与列出的 S3 对象关联的用户定义元数据将作为 Flowfile 属性的一部分写入

另请参阅