aws s3 Spring 集成文件修改监视器
aws s3 Spring Integration File Modification Monitor
我正在寻找 AWS s3 Spring 集成文件修改监视器示例。
要求:每当从 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>
AWS S3 没有这样的监视器。这是一个基于 HTTP 的远程协议,不同于基于 WatchService
的普通文件系统监视器。你不拿苹果跟苹果比较。
您需要使用标准 <int-aws:s3-inbound-channel-adapter>
。默认情况下使用 S3PersistentAcceptOnceFileListFilter
来响应远程文件的修改。好吧,本质上它轮询远程文件并检查其 lastmodified
.
在 Reference Manual 中查看更多信息:
Also, if you configure the filter to use a FtpPersistentAcceptOnceFileListFilter
, and the remote file timestamp changes (causing it to be re-fetched)
相同的规则适用于 AWS S3 通道适配器。
我正在寻找 AWS s3 Spring 集成文件修改监视器示例。
要求:每当从 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>
AWS S3 没有这样的监视器。这是一个基于 HTTP 的远程协议,不同于基于 WatchService
的普通文件系统监视器。你不拿苹果跟苹果比较。
您需要使用标准 <int-aws:s3-inbound-channel-adapter>
。默认情况下使用 S3PersistentAcceptOnceFileListFilter
来响应远程文件的修改。好吧,本质上它轮询远程文件并检查其 lastmodified
.
在 Reference Manual 中查看更多信息:
Also, if you configure the filter to use a
FtpPersistentAcceptOnceFileListFilter
, and the remote file timestamp changes (causing it to be re-fetched)
相同的规则适用于 AWS S3 通道适配器。