aws s3 Spring Монитор модификации файлов интеграции - PullRequest
0 голосов
/ 06 сентября 2018

Я ищу образец монитора модификации файла Spring AWS s3.

Требование: при каждом изменении файла из корзины AWS S3 последние изменения должны передаваться из экземпляра s3 в экземпляр EC2.

У нас есть событие наблюдения для адаптера входящего файла, но я ищу аналогичный адаптер или логику для операции s3.

Что у нас сейчас есть:

<int-file:inbound-channel-adapter id="modifiedFiles" directory="${input.directory}" use-watch-service="true" filter="acceptAllFilter" watch-events="MODIFY"/>

Конфигурация XML:

<bean id="acceptOnceFilter"
    class="org.springframework.integration.file.filters.AcceptOnceFileListFilter" />

<integration:channel id="s3FilesChannel" />
<int-aws:s3-inbound-channel-adapter id="s3FilesChannelId" channel="s3FilesChannel"
             session-factory="s3SessionFactory"
             auto-create-local-directory="false"
             delete-remote-files="false"
             preserve-timestamp="true"
             local-directory="file:${localFilePath}"
             local-filter="acceptOnceFilter"
             remote-directory-expression="${bucket_name}"
             auto-startup="false"
             filename-regex="${regx_expresion}" 
             remote-file-separator="/" >
    <integration:poller fixed-delay="1000"/>
</int-aws:s3-inbound-channel-adapter>

<integration:channel id="s3FilesChannel">
    <integration:queue/>
</integration:channel>

1 Ответ

0 голосов
/ 06 сентября 2018

Для AWS S3 такого монитора нет.Это удаленный протокол по HTTP в отличие от простого монитора файловой системы, основанного на WatchService.Вы не сравниваете яблоки с яблоками.

Вам нужно использовать стандарт <int-aws:s3-inbound-channel-adapter>.По умолчанию используется S3PersistentAcceptOnceFileListFilter, который реагирует на изменение удаленных файлов.Ну, по сути, он опрашивает удаленный файл и проверяет его lastmodified.

См. Дополнительную информацию в Справочном руководстве :

Кроме того, если вы настроитефильтр для использования FtpPersistentAcceptOnceFileListFilter, и временная метка удаленного файла изменяется (вызывая его повторную выборку)

Те же правила применяются к канальным адаптерам AWS S3.

...