Я использую Spring интеграции Aws в одном из моих проектов для загрузки файлов из корзины S3 в локальный каталог. Я указал местоположение корзины, и загрузка пока работает нормально. Проблема возникла, когда я создал подпапку в корзине, чтобы сохранить архивный файл (который был обработан / загружен). Синхронизатор S3 также начал загружать подпапку. Мои ожидания состоят в том, чтобы синхронизировать только папку вместо вложенных папок в корзине. Я вижу флаг в выпуске spring -gration-aws 0.5, чтобы отключить это поведение.
<xsd:attribute name="accept-sub-folders" type="xsd:string">
но я не могу найти это в выпуске 2.00.
Ниже приведен код:
@Bean
public S3InboundFileSynchronizer s3InboundFileSynchronizer ()
{
S3InboundFileSynchronizer s3InboundFileSynchronizer = new S3InboundFileSynchronizer (amazonS3);
s3InboundFileSynchronizer.setDeleteRemoteFiles (false);
s3InboundFileSynchronizer.setPreserveTimestamp (true);
s3InboundFileSynchronizer.setRemoteDirectory (remoteBucket);
ChainFileListFilter fileListFilter = new ChainFileListFilter ();
fileListFilter.addFilter (new S3RegexPatternFileListFilter (remoteFilesExtension));
fileListFilter.addFilter (new S3PersistentAcceptOnceFileListFilter (metadataStore (), metadataStoreKeyPrefix));
return s3InboundFileSynchronizer;
}
и конфигурация опроса:
@Bean
@InboundChannelAdapter(channel = "fileArchiveChannel", poller = @Poller(fixedRate = "100000", maxMessagesPerPoll = "-1"))
public S3InboundFileSynchronizingMessageSource s3InboundFileSynchronizingMessageSource ()
{
S3InboundFileSynchronizingMessageSource messageSource = new S3InboundFileSynchronizingMessageSource (s3InboundFileSynchronizer ());
messageSource.setAutoCreateLocalDirectory (true);
messageSource.setLoggingEnabled (true);
File location = new File (localDirectory);
Assert.notNull (location, "Local directory is not available");
messageSource.setLocalDirectory (location);
ChainFileListFilter fileListFilter = new ChainFileListFilter ();
fileListFilter.addFilter (new RegexPatternFileListFilter (remoteFilesExtension));
fileListFilter.addFilter (new FileSystemPersistentAcceptOnceFileListFilter (metadataStore (), metadataStoreKeyPrefix));
messageSource.setLocalFilter (fileListFilter);
return messageSource;
}
Любой способ прекратить синхронизацию вложенных папок с Spring интеграции AWS 2,00?