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

将通道链接在一起删除file_originalFile标头

和季
2023-03-14
int ageLimit = Integer.parseInt(props.getProperty("file.age"));
        BasicFileAttributes view = null;
        try
        {
            view = Files.getFileAttributeView(
                    Paths.get(f.getAbsolutePath()),
                    BasicFileAttributeView.class).readAttributes();
        } catch (IOException e1)
        {
            // TODO Auto-generated catch block
            e1.printStackTrace();
        }
        FileTime ft = view.creationTime();
        if (((new Date()).getTime() - (((ft.to(TimeUnit.MILLISECONDS))/* / 10000L) - 11644473600000L*/))) > ageLimit
                * (24 * 60 * 60 * 1000))// file creation
                                        // date(converted
                                        // to
                                        // java.util.date)
                                        // - current
                                        // date >
                                        // oldness in ms
        {
            logger.info("File is old:" + (f.getName()));
            return false;
        }

>

  • int-ftp:inbound-channel-adapter从ftp站点获取文件并将其放入本地目录。

    该文件由int-file:inbound-channel-adapter拾取并放入最终目的地。

    这是一个两步的过程来拾取一个文件放在ftp位置。

         <int:channel id="ftpChannel"/> 
     <int-ftp:outbound-channel-adapter id="ftpOutbound"
        channel="ftpChannel"
        session-factory="ftpClientFactory"
        charset="UTF-8"
        remote-file-separator="/"
        auto-create-directory="true"
        remote-directory="." 
        use-temporary-file-name="true"
        />  
    <int-ftp:inbound-channel-adapter id="ftpInbound"
        channel="ftpChannel"
        session-factory="ftpClientFactory"
        charset="UTF-8"
    
        local-directory="file:${paths.root}"
        delete-remote-files="true"
        temporary-file-suffix=".writing"
        remote-directory="."
         filename-pattern="*${file.char}*${file.char}*${file.char}*${file.char}*${file.char}*"
    
        preserve-timestamp="true"
         auto-startup="true">
        <int:poller fixed-rate="1000"/>
        </int-ftp:inbound-channel-adapter>
            <bean id="ftpClientFactory"
        class="org.springframework.integration.ftp.session.DefaultFtpSessionFactory">
        <property name="host" value="${ftp.ip}"/>
        <property name="port" value="${ftp.port}"/>
        <property name="username" value="${ftp.username}"/>
        <property name="password" value="${ftp.password}"/>
        <property name="clientMode" value="0"/>
        <property name="fileType" value="2"/>
        <property name="bufferSize" value="100000"/>
    </bean>
    
            <int-file:outbound-channel-adapter channel="abc" id="filesOut"
            directory-expression="@outPathBean.getPath()"
            delete-source-files="true" filename-generator="fileNameGenerator" />
    
     <int:header-enricher input-channel="ftpChannel" output-channel="ftpChannel">
        <int:header name="file_originalFile"  ref="getPath" method="getCurrentPath" />
    </int:header-enricher>
    
            <int-file:inbound-channel-adapter id="filesIn" directory="file:${paths.root}" channel="abc" filter="compositeFilter" >
            <int:poller id="poller" fixed-delay="5000" />
    
        </int-file:inbound-channel-adapter>
        <int:channel id="abc"/>
    
    public String getCurrentPath(Message<File> payload)
    {
    
    
        File f = payload.getPayload();
        if (payload.getHeaders().get(FileHeaders.ORIGINAL_FILE)== null)
        {
            return f.getAbsolutePath();
        }
        else
        {
            payload.getHeaders().get(FileHeaders.ORIGINAL_FILE).toString();
        }
        return null;
    }
    

    我做错了什么??我已经尝试使用标题-丰富的abc频道以及运气不好!

    希望问题现在清楚了。谢谢你的帮助

  • 共有1个答案

    戚泰
    2023-03-14

    关于:

    无法将[org.springframework.integration.endpoint.EventDrivenConsumer]类型的值转换为属性“output channel”所需的类型[org.springframework.messaging.messageChannel]:找不到匹配的编辑器或转换策略

    因为您有

     类似资料:
    • 我试过了 但是代码无法编译(Eclispe不接受代码:“不兼容的条件操作数类型BufferedReader和DataInPutStream”)。 为什么要这么做?因为我想在Stream中使用相同的变量: null 谁能帮帮我吗?提前道谢。

    • 我遵循Rails指南:http://guides.rubyonrails.org/getting_started.html 我的索引中有下面一行。html。雇员再培训局: 但它不起作用;它只会进入展示页面。 供你参考,这是我的路线。rb: 我的控制器: 我的申请书。js: 我的申请书。html。雇员再培训局: 请注意,我已尝试更改

    • 我用的是SpringBoot和JPA Hibernate。 我有这些实体: 当我尝试删除父实体(Post)时,所有相关实体注释都保留在数据库中。为什么级联删除不起作用?

    • 我正在使用sping-boot-2.2.1和sping-HATEOAS。超媒体链接工作正常,但是我在返回链接时看到了属性,请在这里找到下面的代码作为参考和github中的项目, 终点: a)将返回集合模型= 和 b) 将返回列表 控制器。Java 实际反应 预期反应: 我试过了 Spring数据RestdefaultMediaType=application/json spring.hateoas

    • 我已经花了很多时间尝试按照一步一步的指南将这三个连接在一起,以便能够通过html表单将某些内容插入数据库。 以下是html代码: 下面是php代码: 下面是MySQL表: 数据库和表的图片,显示行和数据

    • 问题内容: 我有一个指向重要目录的符号链接。我想摆脱该符号链接,同时保留目录。 我试着回来。 我试着回来 ,然后逐步前进,然后 然后我去找我的后援。 有没有一种方法可以消除符号链接,而不会把婴儿和洗澡水一起扔掉? 问题答案: 基本上,您需要告诉它删除 文件 ,而不是删除 目录 。我相信之间的差异和存在的,因为在C库将每一个的方式不同。 无论如何,第一个应该工作,而第二个应该抱怨foo是目录。 如果