2017-08-09 3 views
1

J'ai une série de blobs que je voudrais traiter. Mon programme devient une erreur 404, lancer une exception comme ceci:C# ne récupère pas de blob à partir du stockage blob Azure

ErrorCode:BlobNotFound 
ErrorMessage:The specified blob does not exist. 

La politique d'accès sur le conteneur est réglé correctement, et quand je coller l'URI connecté dans mon navigateur (par exemple, ceci: https://atpblob.blob.core.windows.net/darkskydata/plot1251time2010-01-02t00:00:01z.json), il se télécharge très bien.

Voici le code correspondant:

Console.WriteLine(daily.BlobUri); 
CloudBlockBlob blockBlob = container.GetBlockBlobReference(daily.BlobUri); 
string text; 
using (var memoryStream = new MemoryStream()) 
{ 
    blockBlob.DownloadToStream(memoryStream); 
    text = System.Text.Encoding.UTF8.GetString(memoryStream.ToArray()); 
} 
Console.WriteLine(text); 

Qu'est-ce que je fais mal?

Répondre

3

Je crois que le problème est avec la ligne de code suivante:

CloudBlockBlob blockBlob = container.GetBlockBlobReference(daily.BlobUri); 

Si vous regardez la documentation GetBlockBlobReference, le paramètre attendu est en fait le nom de blob et non l'URL.

Veuillez essayer de changer le nom de blob. À des fins de test, essayez le code suivant:

CloudBlockBlob blockBlob = container.GetBlockBlobReference("plot1251time2010-01-02t00:00:01z.json"); 

Vous ne devriez pas recevoir d'erreur.