Search code examples
c#azure.net-coreazure-storageazure-blob-storage

How read all files from azure blob storage in C# Core


I want to read files from an azure blob storage (the files inside the folder), the blob storage contains many folders. I want to read my folder 'blobstorage' ,it contains many JSON files performing .read to each file and some manipulations. I tried many code that did not work:

 CloudStorageAccount storageAccount = CloudStorageAccount.Parse(connectionString);
            CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient();
            CloudBlobContainer container = blobClient.GetContainerReference($"blobstorage");

The above code uses 'Microsoft.WindowsAzure.Storage' nuget package. This code is not working as expected. In many questions and answers found in stack overflow I found that most of them are outdated and does not work. Note: if any nuget mention that also bcs they are many packages


Solution

  • I found the solution in this post and worked perfectly for me. You just have to read it as a normal stream after the download.

    BlobServiceClient blobServiceClient = new BlobServiceClient("connectionString");
    BlobContainerClient containerClient = blobServiceClient.GetBlobContainerClient("containerName");
    BlobClient blobClient = containerClient.GetBlobClient("blobName.csv");
    if (await blobClient.ExistsAsync())
    {
      var response = await blobClient.DownloadAsync();
      using (var streamReader= new StreamReader(response.Value.Content))
      {
        while (!streamReader.EndOfStream)
        {
          var line = await streamReader.ReadLineAsync();
          Console.WriteLine(line);
        }
      }
    }