Apache Camel 作为文件浏览器
Apache Camel as file explorer
我需要一种方法来显示(远程)目录的内容,并且由于主应用程序大量使用 Apache Camel,我想依靠 Apache Camel再次完成这个任务。
因此,我们的目标是拥有一个文件资源管理器视图,其中列出基本目录内容(目录和文件),并且通过单击给定目录,应通过显示其内容来刷新视图,等等。 .. 一种让用户导航目录的 FTP 客户端(例如 WinSCP、FileZilla 等)远程或本地,具体取决于上下文。
如果必须使用 Apache Camel
,我会使用:
file component
收集本地目录内容
sftp component
收集远程目录内容
然后,从给定的基目录开始,我将使用 recursive=true
检索其全部内容(因此,基目录和所有子目录包含的所有文件)。这样,通过将结果映射到树中并将其保存在内存中,我将能够识别目录结构并仅向用户显示特定的信息子集,具体取决于其导航。
但是,这种方法至少有三个副作用:
- 由于会立即检索完整结构,因此无法根据用户导航延迟加载给定节点
- 以同样的方式,有必要将完整结构保存在内存中,即使用户正在查看包含例如单个文件的叶子
- 不可能显示空目录...据我所知,事实上,Camel 只读取文件,以防目录 /D 包含文件
F.txt
和空目录 /E
,Camel 组件会 return /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=true
和maxDepth=2
,只会return
- /root/file1.txt
- /root/sub-dir-2/file2.txt
(没有sub-dir-1
,不直接包含文件)。
所以,我的问题是:
- Apache Camel 是正确的选择吗?
- 在 Apache Camel 中,是否有更好的方法来导航给定目录?
- 在 Apache Camel 中是否也可以检索有关空目录的信息?
广告 1)
可能不是——它是一个集成库,而不是目录监听工具
广告 2)
不,它不是目录监听工具
广告 3)
否,仅适用于文件。
我需要一种方法来显示(远程)目录的内容,并且由于主应用程序大量使用 Apache Camel,我想依靠 Apache Camel再次完成这个任务。
因此,我们的目标是拥有一个文件资源管理器视图,其中列出基本目录内容(目录和文件),并且通过单击给定目录,应通过显示其内容来刷新视图,等等。 .. 一种让用户导航目录的 FTP 客户端(例如 WinSCP、FileZilla 等)远程或本地,具体取决于上下文。
如果必须使用 Apache Camel
,我会使用:
file component
收集本地目录内容sftp component
收集远程目录内容
然后,从给定的基目录开始,我将使用 recursive=true
检索其全部内容(因此,基目录和所有子目录包含的所有文件)。这样,通过将结果映射到树中并将其保存在内存中,我将能够识别目录结构并仅向用户显示特定的信息子集,具体取决于其导航。
但是,这种方法至少有三个副作用:
- 由于会立即检索完整结构,因此无法根据用户导航延迟加载给定节点
- 以同样的方式,有必要将完整结构保存在内存中,即使用户正在查看包含例如单个文件的叶子
- 不可能显示空目录...据我所知,事实上,Camel 只读取文件,以防目录 /D 包含文件
F.txt
和空目录/E
,Camel 组件会 return/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=true
和maxDepth=2
,只会return
- /root/file1.txt
- /root/sub-dir-2/file2.txt
(没有sub-dir-1
,不直接包含文件)。
所以,我的问题是:
- Apache Camel 是正确的选择吗?
- 在 Apache Camel 中,是否有更好的方法来导航给定目录?
- 在 Apache Camel 中是否也可以检索有关空目录的信息?
广告 1) 可能不是——它是一个集成库,而不是目录监听工具
广告 2) 不,它不是目录监听工具
广告 3) 否,仅适用于文件。