sftp入站通道适配器未选择具有相同名称的已修改文件

时间:2015-07-02 14:03:07

标签: spring-batch spring-integration

我正在使用带有复合过滤器的sftp适配器(SftpPersistentAcceptOnceFileListFilter),它由PropertiesPersistingMetadataStore支持。现在据我所知,这个过滤器检查文件的最后修改时间戳,并根据它过滤文件。

即使我使用此过滤器并删除更新的文件,它也没有拿起那个新文件。

注意:下载文件本地保存到某个临时目录。没有使用本地过滤器。我们总是会有相同的文件名。每天只有变化的是内容和文件时间戳。

这是我的复合过滤器配置

<bean id="compositeFilter" class="org.springframework.integration.file.filters.CompositeFileListFilter">
<constructor-arg>
    <list>
        <bean class="org.springframework.integration.sftp.filters.SftpSimplePatternFileListFilter">
            <constructor-arg value="test.txt" />
        </bean>
        <bean class="org.springframework.integration.sftp.filters.SftpPersistentAcceptOnceFileListFilter">
            <constructor-arg name="store" ref="metadataStore"/>
            <constructor-arg value="myapp"/>
        </bean>
    </list>
</constructor-arg>

    

1 个答案:

答案 0 :(得分:0)

默认local-filterAcceptOnceFileListFilter。如果您在处理后没有删除该文件,则无法使用AcceptAllFileListFilter,您需要在本地过滤器中使用FileSystemPersistentAcceptOnceFileListFilter

但是,通常情况下,最好在处理后删除或重命名文件并使用accept all过滤器。