当前位置: 首页 > 知识库问答 >
问题:

如何使用apache camel在ftp服务器上只删除已处理文件

鞠鸿雪
2023-03-14
from(eodRepository + "?delete=true")
    .filter(header("CamelFileName").regex(myPattern))
    .log(DEBUG, "Decrypting file ${header.CamelFileName}")
    .unmarshal(pgpDataFormat)
    .log(DEBUG, "Processing file ${header.CamelFileName}")
    .unmarshal(myBusinessDataFormat)
    .bean(myBean, "processIt")
    .log(INFO, "Processed file ${header.CamelFileName}");

上面使用与eodRepository(一个sftp文件夹)中的筛选器匹配的文件,但是,endpoint上的delete=true删除了sftp文件夹中的所有文件,而不仅仅是已经处理的文件。

有没有人知道我怎样才能确保只删除处理过的文件,而剩下的文件留在endpoint上?

共有1个答案

刘德义
2023-03-14

您需要在endpointuri中指定文件名筛选,而不是在路由中指定筛选器EIP。

您可以使用reg exp:

"?delete=true&include=" + pattern

ftp文档:https://github.com/apache/camel/blob/master/components/camel-FTP/src/main/docs/ftp-component.adoc

 类似资料:
  • 我正在写一个涉及多个客户的应用程序。一个客户端使用FTP将文件上传到服务器,然后另一个客户端下载并删除该文件。我使用FTP服务器作为一种中间人来交换信息,因为我不希望用户必须向前移植。我已经知道如何上传文件,但我不知道如何删除文件。使用FTP删除文件的命令是: 我试过这么做,但没有成功。以下是我尝试过的代码: 我有一种感觉 我在这个网站上读到了关于类似问题的其他问题,所有的回答都告诉我使用图书馆。

  • 我需要将文件从文件夹同步到restendpoint。因此,如果文件被放置在特定文件夹中,我需要将该文件发送到接受多部分文件的RESTendpoint。我正在使用ApacheCamel来实现这一点。 RESTendpoint在Spring中编写,如下所示: 我是Camel的新手,并且已经弄清楚了如何通过构建路由并获取文件来轮询目录,但是我无法弄清楚如何使用此路由将此文件放入其余endpoint。这是

  • 问题内容: 我创建了一个从有权访问的FTP服务器下载文件的功能。如何将文件上传回FTP服务器? 以下是我使用的download_files方法: 问题答案: 使用Apache Commons Net库中的FTPClient类。 这是一个带有示例的代码段: 摘录自http://www.kodejava.org/examples/356.html

  • 本文向大家介绍Java实现ftp上传下载、删除文件及在ftp服务器上传文件夹的方法,包括了Java实现ftp上传下载、删除文件及在ftp服务器上传文件夹的方法的使用技巧和注意事项,需要的朋友参考一下 一个JAVA 实现FTP功能的代码,包括了服务器的设置模块,并包括有上传文件至FTP的通用方法、下载文件的通用方法以及删除文件、在ftp服务器上传文件夹、检测文件夹是否存在等,里面的有些代码对编写JA

  • 本文向大家介绍如何在windows桌面使用ftp上传文件到linux服务器,包括了如何在windows桌面使用ftp上传文件到linux服务器的使用技巧和注意事项,需要的朋友参考一下 首先在linux服务器上安装ftp 然后就可以测试了~~ 匿名新建文件,重命名和删除都可以了 如果出现550的报错,代表的是服务端的权限设置有问题,553的话就是配置文件有问题 附录:/etc/vsftpd/vsft

  • 问题内容: 我从服务器使用IMAP协议就像是接收电子邮件描述了这里。这工作得很好,我可以将电子邮件和附件存储在磁盘上。 问题: 当客户端尝试接收所有电子邮件时,是否可以从服务器删除文件,以使它们不再可用? 如果是这样,请告诉我如何。 问题答案: 您应该能够通过标准API来执行此操作。 首先,您需要获取Message要删除的(或消息)的引用-如果您成功阅读它们,那么您已经可以做到 这一点。现在,没有