骆驼S3:列出已关闭调度程序的S3存储桶文件

时间:2020-01-09 14:13:11

标签: amazon-s3 apache-camel apache-camel-aws

我正在遵循以下骆驼路线,该路线正试图从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.CamelAwsS3Key}'的空值时,这不会执行'aws-s3'部分。

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

使用的骆驼版本-2.22.0

aws的依赖项:

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

1 个答案:

答案 0 :(得分:1)

没有2 x来自,基本上不是两个独立的消费者。而是在调用另一个from时使用内容增强器(pollEnrich)从s3进行消费。

from
   pollEnrich
   log

阅读有关content richer和pollEnrich / rich的文档(特别是在民意测验超时的情况下)。 https://camel.apache.org/manual/latest/content-enricher.html