如何使用apache camel使用azure blob文件列表

tf7tbtn2  于 2022-11-07  发布在  Apache
关注(0)|答案(2)|浏览(172)

我们需要使用apache camel来使用Azure存储容器中的blob文件列表。apache camel中的azure-blob要求blob名称与容器名称沿着传递。是否有任何方法可以从uri动态传递blob名称?

dgiusagp

dgiusagp1#

根据Apache camel和azure blob here的官方文档,blob名称是必需的:

URI格式

azure-blob://accountName/containerName[/blobName][?options]
  • 例如,要从camelazure存储帐户中container 1上的公共块blob blockBlob下载blob内容,请使用以下代码段:*
from("azure-blob:/camelazure/container1/blockBlob").
to("file://blobdirectory");

当你下载多个blob时,一个实际的变通方法/Hack可能会对你有用,那就是为你的blob使用一个名称列表,使用URI中的blob名称作为一个变量值,你可以在其中插入blob名称,然后为你拥有的每个blob生成一个URL。
我也建议在上面的Github repo链接中为Davclaus@提交一个评论,因为他直接参与了这个项目。

lhcgjxsq

lhcgjxsq2#

如果文件名遵循某些命名约定/扩展名,您可能会传递regex模式以从Azure获取如下所示的blob。

azure-storage-blob://accountName/containerName?accessKey=xxxxx==&operation=listBlobs&regex=BLOB_COR_\d{4}.zip

上面的URI将获取名称为BLOB_COR_1111.zip、BLOB_COR_4444.zip等的文件。您可以根据需要更新正则表达式模式。
参考:https://camel.apache.org/components/3.7.x/azure-storage-blob-component.html#_uri_options(搜索正则表达式选项)

相关问题