2013-12-16 55 views
5

我有用於爲我們的數據運行單元測試的Web應用程序,我想將其部署爲Azure網站。
問題是在這個應用程序我正在下載相當大的zip文件,提取它們(〜50MB,500文件裏面),並對這些文件做一些測試。
我應該在Azure網站上保存這些大文件以及我應該在哪裏提取它們?在本地主機上,我一直使用「Path.GetTempPath()」,但Azure網站報告說這個文件夾中沒有空間,即使我的Azure站點總共有1000MB和大約990MB空閒。
有什麼辦法如何使用這些1000MB的文件操作?
如果這不可行,我應該使用Azure Blob存儲解壓縮文件嗎?在Azure網站上保存/提取文件的位置?

+0

是的,您可以使用blob容器 – Overmachine

+0

@Overmachine當程序需要磁盤上的文件時,很難使用blob容器和zip解壓縮程序。當您使用與流一起使用的zip庫時,這是另一個故事。 – Fosna

+1

似乎'Path.GetTempPath()'指向'C:\ DWASFiles \ Sites \ {site_name} \ Temp \ Azure網站'上。 – Fosna

回答

6

在Web站點的情況下以及您的存儲要求適合本地存儲的限制時 - 您當然可以使用本地存儲。

但是Path.GetTempPath()不是您Azure網站的最佳選擇。我想說你應該把所有的文件放在一個文件夾中,這個文件夾是你的網絡應用根文件夾的一部分,即Server.MapPath("~/tmp/")。確保首先檢查文件夾是否存在等。您可以利用您擁有的所有存儲。

至於Blob - 你必須分別解壓每個文件並分別上傳到一個blob。當你必須使用這些文件時,你必須再次下載它們。我不相信這是真正的解決方案,只要您有足夠的本地存儲空間即可使用。

+1

感謝Server.MapPath(「〜/ tmp /」)提示,它的工作原理! –

+0

Azure網站上有多少本地存儲空間可用? – InTheWorldOfCodingApplications

+0

MultipartMemoryStreamProvider可以被證明是更好的替代方案嗎?什麼文件大小將證明對於內存流來說太大 – InTheWorldOfCodingApplications