2015-10-18 3 views
0

J'essaie de définir le type de contenu correct après avoir téléchargé près de 2000 images, sans réaliser que j'ai dû définir leur propriété ContentType. Heureusement, j'ai réalisé cela avant de passer des fichiers .png à un autre type.Azure Storage ne renvoyant aucun blobs lorsque 1827 est affiché dans l'explorateur azure

Voici ma méthode:

private static void ChangeImageTypeInAzureStorage() 
    { 
     var client = GetAzureClient(); 
     var blobContainer = client.GetContainerReference("accessibleimages"); 
     var list = blobContainer.ListBlobs().OfType<CloudBlockBlob>().ToList(); 

     if (!list.Any()) return; //log no entries returned 
     try 
     { 
      foreach (var item in list) 
      { 

       if (Path.GetExtension(item.Uri.AbsoluteUri) == ".png") 
       { 
        item.Properties.ContentType = "image/png"; 
       } 
       item.SetProperties(); 
      } 
     } 
     catch (Exception ex) 
     { 
      //log exceptions with your own methods 
      Console.WriteLine(ex); 
     } 
     Console.WriteLine("Done... press a key to end."); 
     Console.ReadKey(); 
    } 

Je ne reçois pas pourquoi rien est retourné à la liste. Le client et blobContainer sont corrects. Je n'ai eu aucun problème à télécharger ces images sur le même client blobContainer. Inutile de dire que cela échoue parce que la liste compte toujours 0.

Toute aide appréciée.

Répondre

0

Eh bien, j'ai trouvé la réponse après beaucoup de googling. Le paramètre boolean useFlatBoolListing de la méthode ListBlobs doit être défini sur true.

var list = blobContainer.ListBlobs(null, true).OfType<CloudBlockBlob>().ToList();