事实上,Alex Nano写道,s3文件夹只是对象键(“文件名”)的前缀,所以如果你想设置多个路由来监视不同的s3“文件夹”,你可以使用前缀选项的aws:s3端点
前缀工作在相同的功能,你会使用aws s3 cli,
aws s3 ls s3://mybucket/myfolderInsideBucket/
甲JUnit示例
public class CamelAwsS3Test extends CamelTestSupport {
@EndpointInject(uri = "mock:result")
private MockEndpoint resultEndpoint;
@Before
public void setup() throws Exception {
context.start();
}
@Test
public void foo() throws Exception {
int expectedFileCount = 3
resultEndpoint.expectedMessageCount(expectedFileCount);
resultEndpoint.assertIsSatisfied();
}
@Override
protected JndiRegistry createRegistry() throws Exception {
JndiRegistry registry = super.createRegistry();
final String accessKey = "ACCESSKEY";
final String secretKey = "SECRETKEY";
AmazonS3 client = new AmazonS3Client(new BasicAWSCredentials(accessKey, secretKey));
registry.bind("amazonS3Client", client);
return registry;
}
@Override
protected RoutesBuilder createRouteBuilder() throws Exception {
return new RouteBuilder() {
@Override
public void configure() throws Exception {
from("aws-s3://{BUCKET}?amazonS3Client=#amazonS3Client&prefix=${FOLDER}")
.log("hey ${body}").to("mock:result");
}
};
}
}
你的逻辑是实心的,但是,它需要使自定义扩展/黑客骆驼库。让我看看我能否以这种方式找到任何使用谓词的人。 –