在Azure虚拟目录中包含大量blob:
VirtualDirectory1/file1
VirtualDirectory1/file2
...
VirtualDirectory1/fileN
...
VirtualDirectoryK/file1
VirtualDirectoryK/file2
...
VirtualDirectoryK/fileM
我需要一种快速方法来查找以某个后缀结尾的所有blob(例如" file1")。 至于前缀,有一种方法只能获取以某个名称开头的blob:
blobContainer.ListBlobs(prefix: "prefixHere")
以下获取具有某些后缀的Blob的方法会导致获取整个容器并在客户端上进行过滤。
var blobsFound =
blobContainer
.ListBlobs(useFlatBlobListing: true)
.OfType<ICloudBlob>()
.Where(b => b.Name.EndsWith("file1"))
.ToList();
可以清楚地看到使用Fiddler捕获流量:
有没有办法在Azure端通过后缀查找所有blob,而无需向客户端提取完整的Blob列表?
答案 0 :(得分:3)
有没有办法在Azure端按后缀查找所有blob, 没有向客户端提取完整的blob列表?
不幸的是没有。 Blob服务仅支持按blob前缀过滤,而不支持后缀。您唯一的选择是列出blob,然后进行客户端过滤。