我正在使用带有复合过滤器的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>
答案 0 :(得分:0)
默认local-filter
是AcceptOnceFileListFilter
。如果您在处理后没有删除该文件,则无法使用AcceptAllFileListFilter
,您需要在本地过滤器中使用FileSystemPersistentAcceptOnceFileListFilter
。
但是,通常情况下,最好在处理后删除或重命名文件并使用accept all过滤器。