2011-01-06 77 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的答案)。