Для этой цели Spring Integration предлагает:
* Persistent file list filter using the server's file timestamp to detect if we've already
* 'seen' this file.
*
* @author Artem Bilan
*/
public class S3PersistentAcceptOnceFileListFilter extends AbstractPersistentAcceptOnceFileListFilter<S3ObjectSummary> {
Таким образом, вы можете настроить S3InboundFileSynchronizer
и настроить S3PersistentAcceptOnceFileListFilter
через:
/**
* Set the filter to be applied to the remote files before transferring.
* @param filter the file list filter.
*/
public void setFilter(FileListFilter<F> filter) {
S3PersistentAcceptOnceFileListFilter
должен быть настроен для любой возможной общей, постоянной реализации MetadataStore
: https://docs.spring.io/spring-integration/docs/5.0.6.RELEASE/reference/html/system-management-chapter.html#metadata-store.
Например, начиная с версии 1.1
, Spring Integration AWS предоставляет следующее:
/**
* The {@link ConcurrentMetadataStore} for the {@link AmazonDynamoDB}.
*
* @author Artem Bilan
*
* @since 1.1
*/
public class DynamoDbMetaDataStore implements ConcurrentMetadataStore, InitializingBean {
P.S. В вашем вопросе нет ничего про Apache Camel ...