2017-06-14 18 views
0

我已經部署了一個asp mvc,我試圖將csv文件顯示爲已存儲在Azure Blob存儲中的表。從Azure blob容器中可視化文件

我有問題要讀取blob容器中的文件。我在Microsoft文檔中找不到任何解決方案。

我的BLOB容器是公開的,也許我可以通過他們的URL訪問,但我不知道如何讀取CSV文件。有任何想法嗎?

+0

你的問題是不相關的Webjob。 Webjob通常用於後臺進程。您真正的問題是無法顯示存儲在blob中的CSV文件。 – lopezbertoni

+0

@lopezbertoni我的目標是可視化進入blob存儲的實時數據。 – auenal

+0

瞭解。網絡作業不會幫助您可視化數據。如果需要,您可以使用它來處理數據。 – lopezbertoni

回答

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功能中連接的客戶端,然後您可以更新基於UI的在SignalR客戶端推送的csv數據上。您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); 
} 
+0

是的,它的工作原理!忘記回覆,但非常感謝! – auenal