可视化Azure blob容器中的文件

时间:2017-06-14 14:53:02

标签: csv azure azure-storage-blobs

我已经部署了一个asp mvc,我试图将csv文件显示为存储在Azure blob存储中的表。

我在读取blob容器中的文件时遇到问题。我在Microsoft文档中找不到任何解决方案。

我的blob容器是公共的,也许我可以通过他们的URL访问,但我不知道如何阅读csv文件。有任何想法吗?

1 个答案:

答案 0 :(得分:0)

  

我的blob容器是公共的,也许我可以通过他们的URL访问,但我不知道如何阅读csv文件。任何想法?

要读取存储在Azure Blob存储中的csv文件,可以参考以下示例代码。

CloudStorageAccount storageAccount = CloudStorageAccount.Parse("connection string");
CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient();

CloudBlobContainer container = blobClient.GetContainerReference("mycontainer");    
CloudBlockBlob blockBlobReference = container.GetBlockBlobReference("testdata.csv");


using (var reader = new StreamReader(blockBlobReference.OpenRead()))
{
    string row = "";

    while (!reader.EndOfStream)
    {
        //read data from csv file

        row = reader.ReadLine(); 
    }
}
  

我的目标是可视化进入blob存储的实时数据。

您似乎希望将csv数据实时显示为客户网页中的表格。 ASP.NET SignalR可以帮助我们轻松地开发实时Web功能,您可以在指定的Blob容器下检测csv文件,并调用hub方法从csv文件中读取数据并将数据推送到WebJob函数中的连接客户端,然后可以根据SignalR客户端上推送的csv数据更新UI。

在您的WebJob功能中调用集线器方法

var hub = new HubConnection("http://xxx/signalr/hubs");

var proxy = hub.CreateHubProxy("HubName");
hub.Start().Wait();

//invoke hub method
proxy.Invoke("PushData", "filename");

将数据推送到已连接客户端的集线器方法

public void PushData(string filename)
{
   //read data from csv file (blob)

   //call javascript side function to populate (or update) tables with csv data  

   Clients.All.UpdateTables(data);
}