首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >在ftp上移动文件

在ftp上移动文件
EN

Stack Overflow用户
提问于 2015-07-22 15:28:43
回答 2查看 776关注 0票数 1

我正在使用Apache Camel Spring框架。我有一个组件FTP (从ftp获取文件)和Bean (处理文件并将其存储在数据库中)。我所缺少的是,当我处理这些文件并将其存储在数据库中时,我必须检查插入或更新是否成功(这也是有效的)。如果操作成功,我必须将文件移动到ftp上的另一个文件夹,如果操作不成功,我必须将其移动到ftp上的另一个文件夹。

因此,我想知道是否有一种简单的方法可以将文件从位置dirA复制到dirB

EN

回答 2

Stack Overflow用户

发布于 2015-07-22 20:24:37

你需要知道的一切都在这里,搜索movemoveFailed

如果插入不成功,您可能抛出一个CamelException。然后,Camel会将该文件移动到您指定的文件夹。

代码语言:javascript
代码运行次数:0
运行
复制
ftp://10.10.10.10/toRead?move=inDB&moveFailed=notInDB
票数 1
EN

Stack Overflow用户

发布于 2015-07-22 20:37:50

由于我没有你的代码,我将通过展示我如何处理这种情况来回答:

根据bean处理的结果创建两个不同的路由。

代码语言:javascript
代码运行次数:0
运行
复制
from("{{your.ftp.source}}")
    .bean( new ProcessAndStoreFileBean())
    .choice()
        .when(property("fileProcessingResult").equalsTo(true))
            .to("ftp://yourserver/Destination/Folder/Success")
        .otherwise()
            .to("ftp://yourserver/Destination/Folder/Failure")
    .end();

在Bean方法中,我只需要这样做:

代码语言:javascript
代码运行次数:0
运行
复制
class ProcessAndStoreFileBean {

    @Handler
    public void processAndSaveInDb(Exchange exchange){

        // many line to do the job...

        if( success ) 
            exchange.setProperty("fileProcessingResult", true);
        else{
            exchange.setProperty("fileProcessingResult", false);
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31556558

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档