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

Apache Camel:重命名FTP目标文件以防止覆盖

江恩
2023-03-14
from("sftp://camel@server1/Source?password=camel&delete=true").to("sftp://camel@server2/Target?password=camel");

我的问题是Source中的一个新文件与以前的文件同名会覆盖Server2中的目标文件。如果目标已经存在,我如何告诉Camel给它一个新的名字?

谢谢!

共有1个答案

柳项明
2023-03-14

来自fileexist的文件组件

如果已存在同名文件,该怎么办。可以指定以下值:Override、Append、Fail、Ignore和move。Override(默认值)将替换现有文件。追加将内容添加到现有文件中。Fail引发GenericFileOperationException,指示已存在一个现有文件。忽略静默忽略问题,不重写现有文件,但假设一切正常。Move选项需要Camel 2.10.1以后的版本,并且需要配置相应的moveExisting选项。eagerDeleteTargetFile选项可用于控制在移动文件时所做的操作,而该文件已存在,否则会导致移动操作失败。Move选项将在写入目标文件之前移动任何现有文件。

因此您可以抛出异常并捕获它,然后用不同的名称移动它。

 类似资料:
  • 我一直在使用PDF文件中的命名目标来打开文件中特定位置的PDF文件。负责生成PDF文档的团队使用工具从图书标记自动生成命名目的地,因此命名目的地的名称往往类似于*9\u Glossary*或*Additional\u Information*。我们被要求用多种语言制作相同的文档。我预计我们将收到多种外语的PDF文档,在相同的位置带有书签,但图书标记的名称当然将使用这些其他语言,自动生成的命名目的地

  • 在过去的几个小时里,我一直在努力解决这个问题,如果不再次下载和上传文件,我真的找不到一个方法来解决这个问题。有可能吗? 这个问题类似于这个问题:我如何使用FTP在目录之间移动文件?但我有一种感觉,它没有解决,尽管它得到了回答。 重命名文件本身非常简单,没有任何问题,但是我如何将其移动到另一个目录? 我有以下示例代码: 我得到了与另一个主题相同的错误:

  • 前面小节介绍了文件和目录的创建、移动、删除、打包、压缩,本小节介绍如何对已有的文件或者重命名,好的文件命名规范将提升对文件和目录管理的效率。 1. 使用 mv 命令对文件名称 这里还是以 /home 目录的 alltxt.tar 文件为例,可以使用 mv 命令对其重命名: ls mv alltxt.tar newtxt.tar ls 执行结果如下图: 如上图所示相当于文件移动路径没变,名称变

  • 更新:事实证明,这不是Babel的问题,而是之前运行的Rollup的问题。不管怎样,谢谢你的帮助,很抱歉吵闹。 我使用rollup捆绑许多模块,包括Promise多填充(故意覆盖全局Promise)。但是,rollup将识别为全局名称并进行转换 到 生成的代码可以工作,但我希望以下断言成立: 有没有办法让rollup保持构造函数名称不变?

  • 在我的骆驼应用程序,它是进程文件从ftp服务器。当我测试时,我发现在文件上传期间,同时我的路线开始拾取该文件并做过程。我已经设置了readLock为“changed”,延迟为“60000”,我的文件大约是500M。我错过什么了吗?