【问题标题】:How to consume list of azure blob files using apache camel如何使用 apache camel 使用 azure blob 文件列表
【发布时间】:2018-11-29 12:26:13
【问题描述】:

我们有一个场景,我们需要使用 apache camel 在 azure 存储容器中使用 blob 文件列表。 apache camel 中的 azure-blob 要求将 blob 名称与容器名称一起传递。有没有办法从uri动态传递blob名称?

【问题讨论】:

  • 提供的答案对您有帮助吗?

标签: apache-camel azure-blob-storage


【解决方案1】:

根据 Apache camel 和 azure blobs here 的官方文档,需要一个 blob 名称:

URI 格式

azure-blob://accountName/containerName[/blobName][?options]

例如,为了从位于 camelazure 存储帐户的 container1 上的公共块 blob blockBlob 下载 blob 内容,请使用以下 sn-p:

from("azure-blob:/camelazure/container1/blockBlob").
to("file://blobdirectory");

在下载多个 blob 时可能对您有用的实际解决方法/Hack 是为您的 blob 使用名称列表,使用 URI 中的 blob 名称作为变量值,您可以在其中插入blob 名称,然后为您拥有的每个 blob 生成一个 URl。

我还建议在上面的 Github 存储库链接中为 Davclaus@ 提交评论,因为他直接参与了该项目。

【讨论】:

    【解决方案2】:

    共享它以供将来参考,如果文件名遵循某些命名约定/扩展名,您可能可以通过正则表达式模式从 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(搜索正则表达式选项)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-09-07
      • 2021-09-17
      • 2018-12-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-17
      相关资源
      最近更新 更多