ListSmb Processor
描述
列出通过 SMB 协议共享的具体文件。 每个列出的文件可能会产生一个 FlowFile,元数据被写入 FlowFile 属性。 或者 - 如果设置了“Record Writer”属性 - 整个结果将作为记录写入单个 FlowFile。 该处理器设计为仅在集群中的主节点上运行。 如果主节点发生变化,新的主节点将继续前一个节点停止的位置,而不会复制所有数据。
标签
属性
| 名称 | 默认值 | 可选值 | 描述 |
|---|---|---|---|
| SMB Client Provider Service | | 控制器服务 API:SmbClientProviderServicecn.org.acal.lynxus-lynxus-smb-client-api-nar-2.11.8 | 指定用于创建 SMB 连接的 SMB 客户端提供程序。 |
| Listing Strategy | timestamps |
| 指定如何确定新的/更新的实体。 有关详细信息,请参阅每个策略的说明。 |
| Initial Listing Strategy | ALL_FILES |
| 指定当处理器首次启动(或其状态已被清除)时如何处理 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:RecordSetWriterFactorycn.org.acal.lynxus-lynxus-standard-services-api-nar-2.11.8 | 指定用于创建列表的记录写入器。如果未指定,将为每个列出的实体创建一个 FlowFile。如果指定了记录写入器,所有实体将写入单个 FlowFile,而不是将属性添加到各个 FlowFile。 |
| Minimum File Age | 5 secs | 文件必须达到的最小存在时间才能被列出;任何比此时间更短的文件将被忽略。 | |
| Maximum File Age | | 任何早于给定值的文件都将被忽略。 | |
| Minimum File Size | | 任何小于给定值的文件都将被忽略。 | |
| Maximum File Size | | 任何大于给定值的文件都将被忽略。 | |
| 目标系统时间戳精度 | auto-detect |
| 指定目标系统的时间戳精度。由于此处理器使用实体的时间戳来决定应该列出哪些内容,因此使用正确的时间戳精度至关重要。 |
| Entity Tracking State Cache | | 控制器服务 API:DistributedMapCacheClientcn.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 Window | 3 hours | 指定该处理器应跟踪已列出实体的时长。 'Tracking Entities' 策略可以选取时间戳位于指定时间窗口内的任何实体。 例如,若设为 '30 minutes',则该处理器运行时,最近 30 分钟内带有时间戳的任何实体都将成为列举目标。 当满足以下任一条件时,已列出的实体被视为 'new/updated' 并发出一个 FlowFile: 1. 不存在于已列出的实体中, 2. 时间戳比缓存的实体更新, 3. 大小与缓存的实体不同。 如果某个缓存实体的时间戳早于指定的时间窗口,该实体将从缓存的已列出实体中移除。 由 'Tracking Entities' 策略使用。 支持表达式语言:是(仅使用环境/系统变量求值) | |
| Entity Tracking Initial Listing Target | all |
| 指定应如何处理初始列举。 由 '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)
该组件不受限。
输入要求
该组件不允许有传入连接。