24.21. 使用固定名称消耗单个文件


当您要下载单个文件并知道文件名时,您可以使用 fileName=myFileName.txt 告知 Camel 要下载的文件的名称。默认情况下,消费者仍将 FTP LIST 命令执行目录列表,然后根据 fileName 选项过滤这些文件。虽然在这个用例中,可能需要通过设置 useList=false 来关闭目录列表。例如,用于登录到 FTP 服务器的用户帐户可能没有执行 FTP LIST 命令的权限。因此,您可以使用 useList=false 关闭它,然后提供文件的固定名称来下载 fileName=myFileName.txt,然后 FTP 使用者仍然可以下载该文件。如果出于某种原因的文件不存在,则 Camel 默认会抛出异常,您可以通过设置 ignoreFileNotFoundOrPermissionError=true 来关闭此异常并忽略它。

例如,要有一个 Camel 路由选择单个文件,并在使用后将其删除

from("ftp://admin@localhost:21/nolist/?password=admin&stepwise=false&useList=false&ignoreFileNotFoundOrPermissionError=true&fileName=report.txt&delete=true")
  .to("activemq:queue:report");
Copy to Clipboard Toggle word wrap

请注意,我们使用了以上介绍的所有选项。

您还可以在 ConsumerTemplate 中使用它。例如,要下载单个文件(如果存在),并将文件内容作为 String 类型获取:

String data = template.retrieveBodyNoWait("ftp://admin@localhost:21/nolist/?password=admin&stepwise=false&useList=false&ignoreFileNotFoundOrPermissionError=true&fileName=report.txt&delete=true", String.class);
Copy to Clipboard Toggle word wrap
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat