2017-10-03 2 views
0

Brauchen Sie Hilfe,Listenelemente aus Blob Container C# .net

eine Liste für Elemente in Blob-Container jedoch nicht in der Lage zu verstehen, warum es mal-out gespeichert zu bekommen Versuch.

Fehler, die ich erhalte, ist: - '((System.IO.Stream) (swa.BaseStream)) Readtimeout' Readtimeout hat eine Ausnahme des Typs 'System.InvalidOperationException' int {System.InvalidOperationException}

Detail Fehlermeldung:

enter image description here

Code verwendet: https://docs.microsoft.com/en-us/azure/storage/blobs/storage-dotnet-how-to-use-blobs

so wie auf dem folgenden Code - resultSegment bekommt Zählergebnis = 2327 aber auf listblob.txt nur Ausfuhr - 2 279 dann Timeout

namespace listblob 
{ 
    class Program 
    { 

     static void Main(string[] args) 
     { 
      CloudStorageAccount storageAccount = CloudStorageAccount.Parse(
      CloudConfigurationManager.GetSetting("StorageConnectionString")); 

      CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient(); 
      CloudBlobContainer container = blobClient.GetContainerReference("containername"); 

      ListBlobsSegmentedInFlatListing(container).Wait(); 
     } 

     async public static Task ListBlobsSegmentedInFlatListing(CloudBlobContainer container) 
     { 
      int i = 0; 
      BlobContinuationToken continuationToken = null; 
      BlobResultSegment resultSegment = null; 
      string patha = @"C:\listblob.txt"; 
      StreamWriter swa = File.CreateText(patha); 

      do 
      { 
       resultSegment = await container.ListBlobsSegmentedAsync("", true, BlobListingDetails.All, 10, continuationToken, null, null); 
       if (resultSegment.Results.Count<IListBlobItem>() > 0) //{ Console.WriteLine("Page {0}:", ++i); } 
       foreach (var blobItem in resultSegment.Results) 
       { 
        //Console.WriteLine("\t{0}", blobItem.StorageUri.PrimaryUri); 
        swa.WriteLine(blobItem.Uri.Segments[2]); 
       } 
. 
       continuationToken = resultSegment.ContinuationToken; 
      } 
      while (continuationToken != null); 
     } 

    } 

} 
+0

mit [[enter image description here] [1]!] [1] [1]: https://i.stack.imgur.com /dCtiD.jpg – user8711824

+0

Ich habe versucht, Ihren Code auszuführen und es gibt keine Probleme und es funktioniert gut. Können Sie versuchen, den Pfad der Datei von 'Laufwerk c 'zu einem anderen Laufwerk zu ändern und zu überprüfen? und posten Sie das Problem. – Thennarasan

Antwort

1

Danke für die Antwort Thennarasan. Ich habe versucht, wie Sie Vorschlag, aber hatte keine Änderung am Ergebnis.

Allerdings kopierte ich alle in String-Liste und bekam das erwartete Ergebnis.

List<String> list = new List<String>(); 
list.Add(blobItem.Uri.Segments[2]); 
System.IO.File.WriteAllLines("SavedLists.txt", list); 
0
List<string> blobNames = list.OfType<CloudBlockBlob>().Select(b => b.Name).ToList(); 

versuchen auf diese Weise

+0

Während dieses Code-Snippet das Problem lösen kann, erklärt es nicht, warum oder wie es die Frage beantwortet. Bitte fügen Sie eine Erklärung für Ihren Code bei, da dies wirklich dazu beiträgt, die Qualität Ihres Posts zu verbessern. Denken Sie daran, dass Sie die Frage für Leser in der Zukunft beantworten, und diese Leute könnten die Gründe für Ihren Codevorschlag nicht kennen –

Verwandte Themen