0
所有的,我想找到一種方法來從Asp.net MVC 4網站下載一個大的blob文件(大約200MB),這裏是我的代碼片段。請檢查它。謝謝。在網站下載Azure Blob
string sBlobName ="xxxxx";
Response.ContentType="application/octet-stream";
Response.AddHeader("Content-Disposition", "attachment;filename=" + sBlobName);
long lFileSize =200*1024*1024;
int iOffset = 0;
int iBufferSize = 4 * 1024 * 1024;//MB
while (iOffset < lFileSize)
{
//Chunk read blob into a byte array
var bData = StorageHelper.ChunkReadPackage(sContainerName, sPackFullPath, iOffset, iBufferSize);
Response.BinaryWrite(bData);
iOffset += bData.Length;
}
Response.Flush();
Response.End();
return new EmptyResult();
看來畢竟這是從BLOB讀取數據塊被Response.BinaryWrite()發送到客戶端,然後我的Firefox可以在下載對話框窗口彈出我。
我的問題
爲什麼需要Response.BinaryWrite()的全部內容?無論如何要讓這個過程更有效率嗎?我的意思是如果有一種方法可以在第一塊blob發送到客戶端之後在客戶端下載流。等待所有內容被髮送到客戶端。
爲什麼不只是使用Azure存儲客戶端API? – AbdElRaheim
@AbdElRaheim對不起,我沒有明白你的意思,當然我在函數'StorageHelper.ChunkReadPackage'中使用Azure存儲API,然後將塊發送到客戶端。你有沒有檢查我的代碼?或者,我錯過了什麼? –
我相信它與天青無關。所以我沒有在我的文章中添加Azure標籤 –