Nous disposons actuellement d'un stockage BLOB contenant des milliers de fichiers sous le même conteneur Azure. Notre dossier convention de nommage est quelque chose comme ceci:Amélioration de la vitesse d'interrogation du stockage blob azure
NomStockage \ Equipe \ sous-équipe \ FileName
J'écris un outil qui affiche les fichiers pour chaque sous-équipe particulière. Le code obtient la liste des blobs pour le conteneur, puis pour chacun de ceux qu'il essaye de faire correspondre à la bonne Team \ Subteam (voir ci-dessous pour l'exemple de code).
Cela fonctionne mais est extrêmement lent (parce que j'ai besoin de parcourir tous les fichiers pour voir s'ils correspondent à une sous-équipe particulière). Y a-t-il un moyen d'améliorer la vitesse de la requête? Je peux penser à des optimisations telles que "Trouver le premier fichier qui correspond à l'équipe que vous recherchez et suivre quand vous trouvez une autre équipe pour quitter le début", mais cela supposerait que la BlobList est triée et ne corrige pas le pire des cas.
Malheureusement, le fractionnement des fichiers sous différents conteneurs n'est pas une option pour le moment.
est un exemple de code ici:
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
semble que listblobs sont en effet triés selon MSDN http://msdn.microsoft.com/en-us/library/dd135734.aspx. – krolth