Azure Blob存储:按容器名称过滤BlobCreated事件的事件订阅

问题描述 投票:0回答:1

我有一个Azure存储帐户,其中包含一个托管多个容器的Blob存储。到目前为止,我已经成功创建了一个事件,该事件侦听Microsoft.Storage.BlobCreated事件并在我的Web API项目中调用一个Webhook。

当在Web API中处理事件时,我们想知道文件被上传到哪个容器。当前的schema不支持此信息。

我们预期的解决方法是将容器名称附加到文件名中,并在Web API中对其进行解析,然后根据容器名称启动处理逻辑。是否有更好的方法将容器名称附加到BlobCreated事件数据?

GitHub上似乎有这个问题,没有官方的解决方案。我希望已经有了更好的解决方法。

c# asp.net-core azure-storage-blobs
1个回答
1
投票

目前没有SDK可以获取容器触发器。存在一些有关功能或其他服务的问题。目前尚无直接的方法来实现这一目标。

但是,从event response中您可以找到包含容器详细信息的主题,因此您可以仅使用split()方法来获取它。

出于测试目的,我将逻辑应用程序与js一起使用。主题是事件json数据中的subject。用/分割并获取数组中的容器名称。在实际情况中,容器名称是虚拟路径之后,并假设这不是您想要的,因此只需获取索引4的值就是容器名称。

enter image description here

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.