簡體   English   中英

如何在不枚舉整個容器的情況下按名稱后綴查找Azure存儲Blob?

[英]How to find Azure Storage Blob by name suffix without enumerating whole container?

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列表?

有沒有辦法在Azure端通過后綴找到所有blob,而無需向客戶端提取完整的Blob列表?

很不幸的是,不行。 Blob服務僅支持按blob前綴過濾,而不支持后綴。 您唯一的選擇是列出blob然后進行客戶端過濾。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM