2017-04-19 2 views
0

Je n'arrive pas à trouver une méthode pour accéder à des métadonnées BLOB individuelles pour les blobs dans Azure Storage.Accès aux métadonnées à partir du blob de stockage azure

FetchAttributes ne fonctionne que sur le conteneur entier. Ma méthode retourne une liste de blobs qui correspondent aux paramètres que j'ai définis. Je dois ensuite parcourir cette liste et récupérer des métadonnées de chacune de ces tâches, mais je ne trouve aucune méthode pour le faire.

Cela semble être beaucoup de surcharge, mais devrais-je récupérer ces attributs lorsque je crée l'objet conteneur, puis filtrer pour la liste blob?

Alors, je me suis dit que je vais essayer que,

public static IEnumerable<GalleryPhoto> GetGalleryPhotos(string folderPath) 
{ 

     var container = CreateAzureContainer(containerName, false); 
     container.FetchAttributes(); 
     var blobDirectory = container.GetDirectoryReference(folderPath); 
     var photoGalleries = new List<GalleryPhoto>(); 
     var blobs = blobDirectory.ListBlobs().ToList(); 

     ...rest of code 
    } 

Les objets blob dans blobs, 0 pour montrer le nombre de métadonnées. Chacun des éléments HAVE metadata, vérifié en examinant les propriétés dans Azure Storage Explorer pour chaque blob.

Toute aide appréciée.

Répondre

1

Il est tout à fait possible de récupérer les métadonnées dans le résultat lors de l'inscription blobs. Ce que vous devez faire est de spécifier le paramètre BlobListingDetails dans l'appel de méthode ListBlobs et spécifier BlobListingDetails.Metadata là. Ce que cela va faire est d'inclure des métadonnées pour chaque blob dans la réponse. Donc, votre code serait:

public static IEnumerable<GalleryPhoto> GetGalleryPhotos(string folderPath) 
{ 

     var container = CreateAzureContainer(containerName, false); 
     container.FetchAttributes(); 
     var blobDirectory = container.GetDirectoryReference(folderPath); 
     var photoGalleries = new List<GalleryPhoto>(); 
     var blobs = blobDirectory.ListBlobs(false, BlobListingDetails.Metadata).ToList(); 

     ...rest of code 
    } 

Faites l'essai. Ça devrait marcher.

+0

@Guarav Mantri ... ty, ça marche – dinotom