ListGoogleDrive Processor
描述
执行 Google Drive 文件夹中具体文件(忽略快捷方式)的列表。
标签
属性
| 名称 | 默认值 | 可选值 | 描述 |
|---|---|---|---|
| GCP Credentials Provider Service | | 控制器服务 API:GCPCredentialsServicecn.org.acal.lynxus-lynxus-gcp-services-api-nar-2.11.8 | 用于获取 Google Cloud Platform 凭据的Controller Service。 |
| Folder ID | | 从中拉取文件列表的文件夹 ID。请参阅其他详细信息以设置对 Google 云端硬盘的访问并获取文件夹 ID。警告:对文件夹的未授权访问将被视为文件夹为空。这将导致处理器不创建输出 FlowFile。不会提供额外的错误消息。 支持表达式语言:是(仅使用环境/系统变量求值) | |
| Search Recursively | true |
| 当为 'true' 时,将包含具体子文件夹中的文件列表(忽略快捷方式)。否则,仅返回以定义的 'Folder ID' 作为直接父级的文件。警告:如果子文件夹过多(500+),列表操作可能会失败。 |
| Minimum File Age | 0 sec | 文件必须达到的最低年龄才能被考虑; 任何比这更年轻的文件都将被忽略。 | |
| Listing Strategy | timestamps |
| 指定如何确定新的/更新的实体。 有关详细信息,请参阅每个策略的说明。 |
| 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' 策略使用。 |
| Record Writer | | 控制器服务 API:RecordSetWriterFactorycn.org.acal.lynxus-lynxus-standard-services-api-nar-2.11.8 | 指定用于创建列表的记录写入器。如果未指定,将为每个列出的实体创建一个 FlowFile。如果指定了记录写入器,所有实体将写入单个 FlowFile,而不是将属性添加到各个 FlowFile。 |
| Google Drive API Scope | DRIVE_SCOPES |
| 指定访问 Google Drive 时请求的 OAuth2 范围。'Drive Scopes' 使用特定于 Drive 的范围,推荐用于大多数设置,包括具有域范围委派的服务账户。'Cloud Platform' 使用更广泛的 cloud-platform 范围,在使用具有服务账户模拟的工作负载身份联合时需要此范围。 |
| Proxy Configuration Service | | 控制器服务 API:ProxyConfigurationServicecn.org.acal.lynxus-lynxus-standard-services-api-nar-2.11.8 | 指定代理配置 Controller Service 来代理网络请求。 |
| Connect Timeout | 20 sec | 连接 Google 云端硬盘服务的最长等待时间。 支持表达式语言:是(仅使用环境/系统变量求值) | |
| Read Timeout | 60 sec | Google 云端硬盘服务响应的最长等待时间。 支持表达式语言:是(仅使用环境/系统变量求值) |
关系 (Relationships)
| 名称 | 描述 | 自动终止 |
|---|---|---|
success | 所有收到的 FlowFiles 都会成功路由 | 否 |
写入的 FlowFile 属性
| 名称 | 描述 |
|---|---|
drive.id | 文件的 ID |
filename | 文件的名称 |
mime.type | 文件的 MIME 类型 |
drive.size | 文件的大小。当文件大小不可用时设置为 0(例如外部存储的文件)。 |
drive.size.available | 指示文件大小是否已知/可用 |
drive.timestamp | 文件的最后修改时间或创建时间(取较大者)。这是因为文件上传到 Google Drive 时会保留原始修改日期。'创建时间'取上传发生的时间。但上传的文件之后仍可被修改。 |
drive.created.time | 文件的创建时间 |
drive.modified.time | 文件的最后修改时间 |
drive.path | 文件目录从基础目录开始的路径。路径包含 URL 编码的文件夹名称,因为 Google Drive 允许文件名中包含特殊字符,包括 '/'(斜杠)和 '\'(反斜杠)。URL 编码的文件夹名称以 '/' 分隔。 |
drive.owner | 文件的所有者 |
drive.last.modifying.user | 文件的最后修改用户 |
drive.web.view.link | 文件的网页查看链接 |
drive.web.content.link | 文件的网页内容链接 |
drive.parent.folder.id | 文件父文件夹的 ID |
drive.parent.folder.name | 文件父文件夹的名称 |
drive.listed.folder.id | 被列出的基础文件夹的 ID |
drive.listed.folder.name | 被列出的基础文件夹的名称 |
drive.shared.drive.id | 共享驱动器的 ID(如果文件位于共享驱动器上) |
drive.shared.drive.name | 共享驱动器的名称(如果文件位于共享驱动器上) |
状态管理
| 作用域 | 描述 |
|---|---|
| CLUSTER | 处理器存储必要的数据,以便能够跟踪已列出的文件。 What exactly needs to be stored depends on the 'Listing Strategy'. State is stored across the cluster so that this Processor can be run on Primary Node only and if a new Primary Node is selected, the new node can pick up where the previous node left off, without duplicating the data. |
受限 (Restricted)
该组件不受限。
输入要求
该组件不允许有传入连接。
详细说明
ListGoogleDrive
从 Lynxus 访问 Google Drive
该 Processor 使用 Google Cloud 凭据进行认证,以访问 Google Drive。 为这些 Processor 准备 Google Cloud 和 Google Drive 账户需要以下步骤:
- 在 Google Cloud 中启用 Google Drive API
- 按照 https://developers.google.com/workspace/guides/enable-apis 的说明,搜索 'Google Drive API'。
- 授予 Google Drive 文件夹的访问权限
- 在 Google Cloud Console 中,进入 IAM & Admin -> Service Accounts。
- 记下将要使用的服务账号的邮箱。
- 在 Google Drive 中找到要列出的文件夹。
- 右键点击文件夹 -> Share。
- 输入服务账号的邮箱。
- 找到 Folder ID
- 在 Google Drive 中找到要列出的文件夹并进入。浏览器中的
URL 末尾会包含 ID。例如,如果 URL 是
https://drive.google.com/drive/folders/1trTraPVCnX5_TNwO8d9P_bz278xWOmGm, 那么 Folder ID 就是1trTraPVCnX5_TNwO8d9P_bz278xWOmGm
- 在 Google Drive 中找到要列出的文件夹并进入。浏览器中的
URL 末尾会包含 ID。例如,如果 URL 是
- 在 'Folder ID' 属性中设置 Folder ID