【问题标题】:Apache Camel as file explorerApache Camel 作为文件浏览器
【发布时间】:2021-03-11 01:31:58
【问题描述】:

我需要一种方法来显示(远程)目录的内容,并且由于主应用程序大量使用 Apache Camel,我想依赖 Apache Camel 再次完成这项任务。

因此,目标是创建一个文件资源管理器视图,其中列出了基本目录内容(目录和文件),并且通过单击给定目录,应通过显示其内容来刷新视图,等等...一种 FTP 客户端(例如 WinSCPFileZilla 等),让用户可以根据上下文浏览一个目录,该目录可以是远程的也可以是本地的。

如果我必须使用Apache Camel,我会使用:

  • file component 收集本地目录内容
  • sftp component 收集远程目录内容

然后,从给定的基目录开始,我将使用recursive=true 检索其全部内容(因此,基目录和所有子目录包含的所有文件)。这样,通过将结果映射到树中并将其保存在内存中,我将能够识别目录结构并向用户仅显示特定的信息子集,具体取决于其导航。

但是,这种方法至少有三个副作用:

  1. 由于立即检索完整结构,因此无法根据用户导航延迟加载给定节点
  2. 同样,有必要将完整结构保存在内存中,即使用户正在查看包含例如单个文件的叶子
  3. 不可能显示空目录...据我所知,事实上,Camel 只读取文件,以防目录 /D 包含文件 F.txt和空目录/E,Camel 组件会返回/D/F.txt,而不是/D/E,这是一个目录

点 1 和 2 可能通过指定 maxDepth=2 来修复,以便识别当前级别的所有文件和所有目录...但是,再次考虑以下结构:

root
|_ file1.txt
|_ sub-dir-1
   |_ sub-dir-1-A
      |_ nested-file.txt
|_ sub-dir-2
   |_ file2.txt

file component,从root 开始,具有recursive=truemaxDepth=2,只会返回

  • /root/file1.txt
  • /root/sub-dir-2/file2.txt

(没有sub-dir-1,它不直接包含文件)。

所以,我的问题是:

  1. Apache Camel 是正确的选择吗?
  2. Apache Camel 中是否有更好的方法来导航给定目录?
  3. Apache Camel 中是否也可以检索有关空目录的信息?

【问题讨论】:

标签: apache-camel ftp-client camel-ftp camel-file


【解决方案1】:

广告 1) 可能不是 - 它是一个集成库,而不是目录监听工具

广告 2) 不,它不是目录监听工具

广告 3) 没有它只用于文件。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-09-21
    • 2017-05-09
    • 1970-01-01
    • 1970-01-01
    • 2014-01-06
    • 1970-01-01
    • 2020-12-31
    • 1970-01-01
    相关资源
    最近更新 更多