2011-01-06 78 views
2

我有一個應用程序,我想上傳一個大文件最大2GB,處理完這個文件後,我想將它作爲blob存儲在blobstorage 。我正在使用SWFUploader上傳文件(我想顯示進度條,這是必須的)。上傳一個大文件(最大2GB)在Windows Azure Webrole上使用SWFUploader

問題是,我無法上傳超過100 MB的文件。將文件上傳至100 MB(或有時爲90-95 MB)後,它會重新啓動整個上傳過程,有時會失敗。我正在使用Webrole項目來完成整個任務。

所以我的問題是:我可以在windows azure webrole項目(基本上它的Asp.net網站,所以我想上傳一個文件在網絡服務器上),並在那裏處理它,然後將其上傳到blobstorage?

據我所知,我沒有以下的事情:

1:我在web.config中

<security> 
<requestFiltering> 
<!--maxAllowedContentLength in bytes--> 
     <requestLimits maxAllowedContentLength="2147483648"></requestLimits> 
</requestFiltering> 
</security> 

<httpRuntime executionTimeout="999999" maxRequestLength="2097152"/> 

2設置以下參數:我已經改變了ASP的默認TMP/TEMP文件夾.Net(默認爲100 MB)到我使用follwiing代碼段在本地存儲中創建的新文件夾

我創建了這個「Custo mTempLocalStore」爲

<LocalStorage name="CustomTempLocalStore" cleanOnRoleRecycle="false" sizeInMB="1024" /> 

然後設置該本地存儲資源由webrole的()menthod設置以下代碼中的OnStart如TMP/TEMP使用。

string customTempLocalResourcePath = RoleEnvironment.GetLocalResource("CustomTempLocalStore").RootPath; 
Environment.SetEnvironmentVariable("TMP", customTempLocalResourcePath); 
Environment.SetEnvironmentVariable("TEMP", customTempLocalResourcePath); 

我發現這個以下鏈接上: http://msdn.microsoft.com/en-us/library/dd573354.aspx

不過它不工作時,SWFUploader是給follwing錯誤:

服務器(IO)錯誤

任何想法?

+0

我不知道我是否正確。您正在將文件上傳到Web服務器中的臨時文件夾,並且上傳失敗的速度爲100Mb。那麼問題不在於Azure,您應該編輯後期標籤並添加「asp.net」和類似內容,以便Web開發人員能夠幫助您。 – vtortola 2011-02-04 00:10:35

回答

2

默認情況下,Windows Azure上的本地存儲限制爲100MB。至少在這個時候,這個blog post,詳細解釋瞭如何解決它。

0

這是一個MSDN article解釋100 MB TEMP文件夾限制,並給出一個簡單的解決方法,其中涉及重定向TEMP目錄(不同於Dave的答案)。