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-filter
是 AcceptOnceFileListFilter
。如果处理后不删除文件,则不能使用 AcceptAllFileListFilter
,您将需要在本地过滤器中使用 FileSystemPersistentAcceptOnceFileListFilter
。
但是,一般来说,最好在处理后删除或重命名文件并使用全部接受过滤器。
我正在使用带有复合过滤器 (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-filter
是 AcceptOnceFileListFilter
。如果处理后不删除文件,则不能使用 AcceptAllFileListFilter
,您将需要在本地过滤器中使用 FileSystemPersistentAcceptOnceFileListFilter
。
但是,一般来说,最好在处理后删除或重命名文件并使用全部接受过滤器。