ListS3 2025.5.31.15¶
捆绑包¶
org.apache.nifi | nifi-aws-nar
描述¶
从 S3 桶中检索对象列表。对于列出的每个对象,创建一个代表该对象的 FlowFile,以便可以将其与 FetchS3Object 一起提取。该处理器仅在集群中的主节点上运行。如果主节点发生变化,新的主节点将从前一个节点中断的地方继续,而不是复制所有数据。
输入要求¶
FORBIDDEN
支持敏感的动态属性¶
false
属性¶
属性 |
描述 |
---|---|
AWS 凭据提供商服务 |
用于获取 AWS 凭据提供商的控制器服务 |
桶 |
要与之交互的 S3 桶 |
通信超时 |
超时之前为与 AWS 建立连接或从 AWS 接收数据而等待的时间。 |
端点替换 URL |
要使用的端点 URL 而不是 AWS 默认端点,包括架构、主机、端口和路径。AWS 库会根据 AWS 区域选择端点 URL,但此属性会替换所选端点 URL,允许与其他与 S3 兼容的端点一起使用。 |
列表批处理大小 |
如果不使用记录写入器,则此属性用于指定应在单次批处理中列出多少个 S3 对象。达到此数量后,已创建的 FlowFiles 将被传输出处理器。将此值设置得较低可能会通过在完整列表完成前发出 FlowFiles 来降低延迟。但是,这样会显著降低性能。较大的值可能需要更多内存来存储所有信息,然后再发出 FlowFiles。如果使用记录写入器,则此属性会被忽略,因为记录写入器的主要优点之一是能够将整个列表作为单个 FlowFile 发出。 |
区域 |
要连接的 AWS 区域。 |
SSL Context Service |
指定可选的 SSL Context Service,如果提供该服务,将用于创建连接 |
签名器替换 |
默认情况下,AWS S3 库使用签名版本 4,但此属性允许您指定版本 2 签名器以支持较早的 S3 兼容服务,甚至可以插入自己的自定义签名器实现。 |
custom-signer-class-name |
自定义签名器类的完全限定类名。签名器必须实现 com.amazonaws.auth.Signer 接口。 |
custom-signer-module-location |
以逗号分隔的文件和/或目录路径列表,这些文件和/或目录包含自定义签名器的 JAR 文件及其依赖关系(如果有)。 |
delimiter |
用于分隔桶内目录的字符串。请查阅 AWS 文档以正确使用此字段。 |
et-initial-listing-target |
指定应如何处理初始列表。由“跟踪实体”策略使用。 |
et-state-cache |
列出的实体存储在指定的缓存存储器中,这样该处理器在 NiFi 重启后或主节点发生更改时可以恢复列出。“跟踪实体”策略要求在最后一个“跟踪时间窗口”内提供所有列出的实体的跟踪信息。为了支持大量实体,该策略使用 DistributedMapCache 而非托管状态。缓存键格式为“ListedEntities::{processorId}(::{nodeId})”。如果它跟踪每个节点列出的实体,则会添加可选的“::{nodeId}”部分以单独管理状态。例如,集群范围缓存键 =“ListedEntities::8dda2321-0164-1000-50fa-3042fe7d6a7b”,每节点缓存键 =“ListedEntities::8dda2321-0164-1000-50fa-3042fe7d6a7b::nifi-node3”存储的缓存内容是 Gzipped JSON 字符串。目标列表配置更改时,缓存键将被删除。由“跟踪实体”策略使用。 |
et-time-window |
指定该处理器应跟踪已列出的实体多长时间。“跟踪实体”策略可以选择时间戳在指定时间窗口内的任何实体。例如,如果设置为“30 分钟”,则在该处理器运行时,任何具有最近 30 分钟时间戳的实体都将成为列表目标。如果满足以下条件之一,则列出实体被视为“新的/已更新的”,并发出 FlowFile:1. 不存在于已列出的实体中;2. 具有比缓存实体更新的时间戳;3. 与缓存实体的大小不同。如果缓存实体的时间戳早于指定的时间窗口,则该实体将从缓存的已列出实体中移除。由“跟踪实体”策略使用。 |
list-type |
指定是使用原始列表对象还是较新的列表对象版本 2 端点。 |
listing-strategy |
指定如何确定新的/更新的实体。有关详细信息,请参阅每种策略的描述。 |
max-age |
S3 对象可以考虑的最大时间范围;任何超过此时间(根据上次修改日期)的对象都将被忽略 |
min-age |
S3 对象可以考虑的最小时间范围;任何不足此时间(根据上次修改日期)的对象都将被忽略 |
prefix |
用于筛选对象列表的前缀。请勿以正斜杠“/”开头。在大多数情况下,应当以正斜杠“/”结尾。 |
proxy-configuration-service |
指定代理配置控制器服务来代理网络请求。 |
record-writer |
指定用于创建列表的记录写入器。如果未指定,则将为列出的每个实体创建一个 FlowFile。如果指定了记录写入器,则所有实体都将写入单个 FlowFile,而不是向单个 FlowFiles 添加属性。 |
requester-pays |
如果为 true,则表示请求者同意支付与列出 S3 桶相关的任何费用。 这会将“x-amz-request-payer”标头设置为“requester”。 请注意,当“Use Versions”为“true”时,此设置不适用。 |
use-versions |
指定是否使用 S3 版本(如果适用)。 如果为 false,则仅返回每个对象的最新版本。 |
write-s3-object-tags |
如果设置为“True”,则与 S3 对象关联的标签将写入为 FlowFile 属性 |
write-s3-user-metadata |
如果设置为“True”,则用户定义的与 S3 对象关联的元数据将被添加到 FlowFile 属性/记录中 |
状态管理¶
范围 |
描述 |
---|---|
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 属性的一部分写入 |