2017-08-14 65 views
0

我在這裏有一個挑戰的頭像。使用日誌回調下載進度?

我有一個在Azure中運行的Web應用程序,它在某些時候會公開一個SAS URI(下載鏈接),供用戶從我們的Azure存儲中下載文件。

問題在於我無法跟蹤下載內容的確切數量。

我只能假設,當我爲某個用戶生成下載鏈接時,該文件被完全下載。這可能不是。

我看過Azure日誌,我不認爲我可以在那裏找到我想要的東西。

有沒有什麼辦法可以讓用戶從控制器方法下載文件,並每隔一段時間執行一次回調,以保持傳輸進度,以便我可以在某處登錄並知道哪些用戶下載許多。

我在想SignalR呢。這可以用於這個目的嗎?

謝謝。

+0

也許? https://stackoverflow.com/questions/13385633/serving-large-files-with-c-sharp-httplistener –

+0

不要這樣想。 HttpListener在請求完成時死亡。 –

+0

不是。這取決於你。它可以永遠運行(請參閱答案中的無限循環) –

回答

0

問題是我無法跟蹤下載內容的確切數量。

如果Azure storage diagnostics feature開啓,讀/寫/刪除BLOB操作將被記錄下來,你可以下載(getblob操作)計算從診斷日誌指定的Blob。

此外,如果用戶只能夠從你的MVC應用程序下載的斑點,你可以在你的控制器動作外部存儲更新&節省下載次數,this SO thread討論了類似的問題。如果您直接公開SAS URI,那麼擁有有效且未過期的SAS URI的用戶可以在瀏覽器中輸入該SAS URI並下載該BLOB,那麼將很難跟蹤以此方式下載的BLOB的下載計數。