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

sftp inbound channel adapter not picking modified file with same name

我正在使用带有复合过滤器 (SftpPersistentAcceptOnceFileListFilter) 的 sftp 适配器,它由 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>

默认 local-filterAcceptOnceFileListFilter。如果处理后不删除文件,则不能使用 AcceptAllFileListFilter,您将需要在本地过滤器中使用 FileSystemPersistentAcceptOnceFileListFilter

但是,一般来说,最好在处理后删除或重命名文件并使用全部接受过滤器。