Eug*_*kov 5 c# azure azure-storage azure-blob-storage
Azure 虚拟目录中存在大量 blob:
VirtualDirectory1/file1
VirtualDirectory1/file2
...
VirtualDirectory1/fileN
...
VirtualDirectoryK/file1
VirtualDirectoryK/file2
...
VirtualDirectoryK/fileM
Run Code Online (Sandbox Code Playgroud)
我需要一种快速的方法来查找以特定后缀(例如“file1”)结尾的所有 blob 。至于前缀,有一种方法可以只获取以某个名称开头的 blob:
blobContainer.ListBlobs(prefix: "prefixHere")
Run Code Online (Sandbox Code Playgroud)
以下获取具有特定后缀的blob 的方法会导致获取完整容器及其在客户端上的过滤。
var blobsFound =
blobContainer
.ListBlobs(useFlatBlobListing: true)
.OfType<ICloudBlob>()
.Where(b => b.Name.EndsWith("file1"))
.ToList();
Run Code Online (Sandbox Code Playgroud)
可以清楚地看到使用Fiddler抓取流量:
有没有一种方法可以在 Azure 端按后缀查找所有 Blob,而无需将 Blob 的完整列表获取到客户端?
有没有一种方法可以在 Azure 端按后缀查找所有 Blob,而无需将 Blob 的完整列表获取到客户端?
很不幸的是,不行。Blob 服务仅支持按 Blob 前缀过滤,不支持按后缀过滤。您唯一的选择是列出 blob,然后进行客户端过滤。