Şu anda aynı Azure kabı altında binlerce dosya içeren bir blob deposu var. Ben her bir subteam için dosyaları görüntüleyen bir araç yazıyorumAzure blob depolama sorgulama hızını artırma
StorageName \ Ekibi \ SubTeam \ FileName: Bizim dosya adlandırma kuralı böyle bir şeydir. Kod, Kapsayıcı için blobların listesini alır ve daha sonra her biri için doğru Team \ Subteam ile eşleşmeye çalışır (örnek kod için aşağıya bakın).
Bu, ancak oldukça yavaş çalışır (çünkü belirli bir alt çizgi ile eşleşip eşleşmediklerini görmek için tüm dosyaları gözden geçirmem gerekir). Sorunun hızını artırmanın bir yolu var mı? "Aradığın takımla eşleşen ilk dosyayı bul ve sonra erken çıkmak için farklı bir takım bulduğunda takip et" gibi optimizasyonları düşünebilirim ama bu BlobList'in sıralandığını ve düzeltilemeyeceğini varsayar. en kötü durum senaryosu.
Henüz farklı kapların altındaki dosyaları bölme şu anda bir seçenek değil. Eğer
http://somwhere.com/mycontainername/?restype=container&comp=list&delimiter=/&prefix=\Team\SubTeam
içinde geçebilir ve bu alt sadece dosyaları ile bir xml doc dönecektir DİNLENME arayüzüyle
IEnumerable<IListBlobItem> blobs = blobContainer.ListBlobs(
new BlobRequestOptions()
{
UseFlatBlobListing = true,
BlobListingDetails = BlobListingDetails.Metadata
}).OfType<CloudBlob>();
foreach (var blob in blobs) {
var cloudy = blob as CloudBlob;
string blobTeamId = cloudy.Uri.Segments[2].Trim('/');
if (blobTeamId != teamId)
continue;
//Do something interesting with the file
listblobs gerçekten MSDN http://msdn.microsoft.com/en-us/library/dd135734.aspx göre sıralanmış gibi görünüyor. – krolth