Camel S3:列出已关闭计划程序的 S3 存储桶文件



我正在遵循驼峰路由,该路由正在尝试从 S3 存储桶读取文件列表:

from("direct:my-route").
.from("aws-s3://my.bucket?useIAMCredentials=true&useAwsKMS=true&awsKMSKeyId=my-key-id&deleteAfterRead=false&operation=listObjects&includeBody=false&prefix=test1/test.xml")
.log(" File detected: ${header.CamelAwsS3Key}")
.end();

但是,此路由由每分钟运行的外部调度程序调用。看起来 Camel-S3 组件的默认行为是使用调度程序运行,但这会导致一次又一次地处理相同的文件。

我尝试使用 startScheduler=false 关闭 Camel-S3 调度程序,但是当外部调度程序启动并获得 '${header' 的空值时,这不会执行"aws-s3"部分。CamelAwsS3Key}'.

是否可以在没有内部调度程序的情况下运行此组件?

正在使用的骆驼版本 - 2.22.0

用于 aws 的依赖项:

<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-aws</artifactId>
<version>${camel.version}</version>
</dependency>

没有 2 x from,那基本上不是两个独立的消费者。相反,当调用另一个 from 时,请使用内容丰富器 (pollEnrich( 从 s3 消费。

from
pollEnrich
log

阅读有关内容丰富器和投票丰富/丰富的文档(特别是在投票丰富超时时(。 https://camel.apache.org/manual/latest/content-enricher.html

相关内容

最新更新