Camel Azure存储Blob使用者未按预期工作(Blob持续使用)

tkqqtvp1  于 2022-11-07  发布在  Apache
关注(0)|答案(1)|浏览(151)

我已经编写了一个简单的路径来使用camel(版本3.12.0)中Azure Blob Storage中的blob,如下所示:

from("azure-storage-blob://{{camelazure}}/{{container1}}?blobName=test.json&serviceClient=#client")
                .to({{filePath}});

Blob会不间断地使用,而路由也不会停止。是否有任何关于如何在从Blob存储中使用时实现幂等性的输入?

z9zf31ra

z9zf31ra1#

正如Pasi Österman所建议的,当我们知道要下载和处理的blob名称时,下面的解决方案工作得很好。

from("timer://readBlob?fixedRate=true&period=60000")
    .to("azure-storage-blob://{{camelazure}}/{{container1}}?blobName=test.json&operation=getBlob&serviceClient=#client")
    .process(exchange -> {
        InputStream inputStream = exchange.getMessage().getBody(InputStream.class);
        exchange.getIn().setBody(IOUtils.toString(inputStream, StandardCharsets.UTF_8.name()));
    })
    .to("file:{{filePath}}")
    .to("azure-storage-blob://{{camelazure}}/{{container1}}?blobName=processed/test.json&operation=uploadBlockBlob&serviceClient=#client")
    .to("azure-storage-blob://{{camelazure}}/{{container1}}?blobName=test.json&operation=deleteBlob&serviceClient=#client");

相关问题