ListSmb

文档中心 › 组件索引 › ListSmb

ListSmb Processor

类型全限定名:cn.org.acal.lynxus.processors.smb.ListSmb

所属 Bundle:cn.org.acal.lynxus:lynxus-smb-nar:2.11.8

描述

列出通过 SMB 协议共享的具体文件。 每个列出的文件可能会产生一个 FlowFile,元数据被写入 FlowFile 属性。 或者 - 如果设置了“Record Writer”属性 - 整个结果将作为记录写入单个 FlowFile。 该处理器设计为仅在集群中的主节点上运行。 如果主节点发生变化,新的主节点将继续前一个节点停止的位置,而不会复制所有数据。

标签

samba, smb, cifs, fileslist

属性

下表中,加粗的属性为必填项;其余为可选项。表格同时标注默认值、是否支持表达式语言,以及是否为敏感属性(值会被加密)。

名称默认值可选值描述
SMB Client Provider Service控制器服务 API:
SmbClientProviderService
cn.org.acal.lynxus-lynxus-smb-client-api-nar-2.11.8
指定用于创建 SMB 连接的 SMB 客户端提供程序。
Listing Strategytimestamps
  • 跟踪实体 — 此策略跟踪最新 '实体跟踪时间窗口' 内所有已列取实体的信息以确定新/更新的实体。此策略可以拾取具有旧时间戳的实体,这些实体可能在 '跟踪时间戳' 策略中被遗漏。即使在列取运行时同时写入多个子目录时也能正常工作。但是需要额外的 DistributedMapCache 控制器服务,并且使用更多的 JVM 堆内存。有关其工作方式的更多详细信息,请参阅 '实体跟踪时间窗口' 属性的描述。
  • 不跟踪 — 此策略在没有任何跟踪的情况下列取实体。每次执行此处理器时,同一实体都会被列取。建议更改默认的运行计划值。与持久化状态相关的任何属性都将被忽略。
  • 跟踪时间戳 — 此策略跟踪已列取实体的最新时间戳以确定新/更新的实体。由于它只跟踪少量时间戳,因此可以高效管理列取状态。但是,任何新添加或更新的实体如果时间戳早于跟踪的最新时间戳,则无法被此策略拾取。例如,当带有旧时间戳的文件被复制或移动到目标目录且未更新其最后修改时间戳时,就可能发生这种情况。在列取运行时同时写入多个子目录时也可能遗漏文件。
指定如何确定新的/更新的实体。 有关详细信息,请参阅每个策略的说明。
Initial Listing StrategyALL_FILES
  • All Files — 列出所有现有文件
  • New Files — 仅列出新创建的文件
  • From Timestamp — 仅列出在指定时间戳(含)之后创建的文件
指定当处理器首次启动(或其状态已被清除)时如何处理 SMB 共享上的现有文件。
Initial Listing Timestamp当处理器首次启动(或其状态已被清除)时,将从此时间戳开始列出文件。该值可以指定为毫秒级的纪元时间戳,或指定为 UTC 日期时间格式,如 2025-02-01T00:00:00Z。
输入目录要列出文件的网络文件夹。这是共享之后的剩余相对路径:smb://HOSTNAME:PORT/SHARE/[DIRECTORY]/sub/directories。还可以添加子目录。远程文件共享上的给定路径必须存在。可以使用验证进行检查。可以混合使用 Windows 和 Linux 风格的目录分隔符。
File Filter仅列出名称与给定正则表达式匹配的文件。
Path Filter仅列出其路径(直到文件的父目录)与给定正则表达式匹配的文件。
忽略带后缀的文件以给定后缀结尾的文件将被忽略。可用于确保仍在上传的文件不会被多次列出,方法是为这些文件添加后缀,并在上传完成后移除后缀。使用 'Tracking Entities' 或 'Tracking Timestamps' 列表策略时,强烈建议使用此功能。
Record Writer控制器服务 API:
RecordSetWriterFactory
cn.org.acal.lynxus-lynxus-standard-services-api-nar-2.11.8
指定用于创建列表的记录写入器。如果未指定,将为每个列出的实体创建一个 FlowFile。如果指定了记录写入器,所有实体将写入单个 FlowFile,而不是将属性添加到各个 FlowFile。
Minimum File Age5 secs文件必须达到的最小存在时间才能被列出;任何比此时间更短的文件将被忽略。
Maximum File Age任何早于给定值的文件都将被忽略。
Minimum File Size任何小于给定值的文件都将被忽略。
Maximum File Size任何大于给定值的文件都将被忽略。
目标系统时间戳精度auto-detect
  • 自动检测 — 基于候选条目的时间戳自动确定时间单位。请注意,如果没有条目具有精确精度的时间戳,此选项可能会不必要地增加列取时间。例如,即使目标系统支持毫秒,如果所有条目的时间戳都没有毫秒部分,如 '2017-06-16 09:06:34.000',则其精度被确定为 '秒'。
  • 毫秒 — 如果目标系统支持毫秒,此选项可提供从条目可用到被列取的最小延迟。
  • 秒 — 对于不具有毫秒精度但具有秒级精度的目标系统。
  • 分钟 — 对于只支持分钟精度的目标系统。
指定目标系统的时间戳精度。由于此处理器使用实体的时间戳来决定应该列出哪些内容,因此使用正确的时间戳精度至关重要。
Entity Tracking State Cache控制器服务 API:
DistributedMapCacheClient
cn.org.acal.lynxus-lynxus-standard-services-api-nar-2.11.8
已列出的实体存储在指定的缓存中, 以便该处理器能够在 Lynxus 重启或主节点变更后恢复列举。 'Tracking Entities' 策略需要跟踪最近 'Tracking Time Window' 内所有已列出实体的信息。 为支持大量实体,该策略使用 DistributedMapCache 而非托管状态。 缓存键格式为 'ListedEntities::{processorId}(::{nodeId})'。 如果按节点跟踪已列出的实体,则会添加可选的 '::{nodeId}' 部分以分别管理状态。 例如,集群范围缓存键 = 'ListedEntities::8dda2321-0164-1000-50fa-3042fe7d6a7b', 单节点缓存键 = 'ListedEntities::8dda2321-0164-1000-50fa-3042fe7d6a7b::lynxus-node3'。 存储的缓存内容是经过 Gzip 压缩的 JSON 字符串。 当目标列举配置发生变化时,缓存键将被删除。 由 'Tracking Entities' 策略使用。
Entity Tracking Time Window3 hours指定该处理器应跟踪已列出实体的时长。 'Tracking Entities' 策略可以选取时间戳位于指定时间窗口内的任何实体。 例如,若设为 '30 minutes',则该处理器运行时,最近 30 分钟内带有时间戳的任何实体都将成为列举目标。 当满足以下任一条件时,已列出的实体被视为 'new/updated' 并发出一个 FlowFile: 1. 不存在于已列出的实体中, 2. 时间戳比缓存的实体更新, 3. 大小与缓存的实体不同。 如果某个缓存实体的时间戳早于指定的时间窗口,该实体将从缓存的已列出实体中移除。 由 'Tracking Entities' 策略使用。
支持表达式语言:是(仅使用环境/系统变量求值)
Entity Tracking Initial Listing Targetall
  • 跟踪时间窗口 — 在首次列取活动中忽略时间戳早于指定 '跟踪时间窗口' 的实体。
  • 所有可用 — 不考虑实体时间戳,在首次列取活动中将列取所有现有实体。
指定应如何处理初始列举。 由 'Tracking Entities' 策略使用。

关系 (Relationships)

名称描述自动终止
success所有收到的 FlowFiles 都会成功路由否

写入的 FlowFile 属性

名称描述
filename从文件系统读取的文件名。
shortName从文件系统读取的文件的短名称。
path路径设置为文件目录相对于共享根目录的远程文件系统上的相对路径。例如,对于给定的远程位置 smb://HOSTNAME:PORT/SHARE/DIRECTORY,从 smb://HOSTNAME:PORT/SHARE/DIRECTORY/sub/folder/file 拾取的文件的路径属性将设置为"DIRECTORY/sub/folder"。
serviceLocation共享的 SMB URL。
lastModifiedTime文件系统中文件内容更改的时间戳,格式为“yyyy-MM-dd”T“HH:mm:ss”。
creationTime在文件系统中创建文件的时间戳为 'yyyy-MM-dd'T'HH:mm:ss'。
lastAccessTime在文件系统中访问文件时的时间戳,格式为“yyyy-MM-dd”T“HH:mm:ss”。
changeTime文件系统中文件属性更改的时间戳为“yyyy-MM-dd”T'HH:mm:ss'。
size文件的大小(以字节为单位)。
allocationSize服务器上为文件分配的字节数。

状态管理

作用域描述
CLUSTER执行文件列表后,可以存储先前列表的状态,以便连续列出文件而不重复。

受限 (Restricted)

该组件不受限。

输入要求

该组件不允许有传入连接。