在Azure容器中查找Blob

时间:2013-07-13 23:18:20

标签: azure azure-storage-blobs

我有成千上万的&容器中有数千个Blob,类似

  • A /温度/ A001-1.log
  • A /温度/ A001-2.log
  • A /温度/ A001-3.log
  • B / TMP / B001-1.log
  • B / TMP / B001-2.log
  • B / TMP / B002-1.log

现在我的问题是我想找到名字中有A001的Blob。据我所知,ListBlobsWithPrefix从一些文本开始查找Blob,而不是我的情况。 ListBlobs会将所有blob带到我的代码中,然后我将不得不搜索一个。有什么方法我可以得到我正在寻找的blob。

3 个答案:

答案 0 :(得分:2)

除了暴力之外,实际上没有简单的方法来搜索容器中的特定blob(或具有名称模式的blob集合)。正如您所猜测的那样,名称前缀在这种情况下也无济于事。

我通常建议人们将其可搜索的元数据保存在其他地方(可能是SQL DB,也许是MongoDB,只要它提供所需的搜索功能并不重要),该数据存储包含一个参考链接到确切的blob。 blob名称本身也可以作为可搜索属性之一存储在元数据中。

另外:一旦你进入“容器中成千上万的blob”,你就会发现拉出blob名称需要一段时间(我认为你再次看到)。容器当然可以容纳尽可能多的blob,但在这种情况下,您确实希望直接访问它们,基于其他一些元数据,而不是通过名称列表进行枚举。

答案 1 :(得分:0)

不是搜索,而是构造blobname,如果它的前缀已知,然后尝试下载blob。如果blob没有找到,你将得到404未找到异常。

答案 2 :(得分:0)

从今天开始,在少数区域提供预览功能,以允许对Blob存储建立索引:

https://docs.microsoft.com/en-us/azure/storage/blobs/storage-manage-find-blobs?tabs=azure-portal

希望他们尽快提供它,

致谢