2

我有一个应用程序,我想上传一个最大为 2GB 的大文件,在处理完这个文件后,我想将它作为 blob 存储在 blobstorage 上。我正在使用 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.Net 的默认 TMP/TEMP 文件夹(默认为 100 MB)更改为我使用以下代码片段在本地存储资源中创建的新文件夹

我创建了这个“CustomTempLocalStore”作为

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

然后通过在 webrole 的 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 给出以下错误:

服务器(IO)错误

有任何想法吗?

4

3 回答 3

2

默认情况下,Windows Azure 上的本地存储限制为 100MB。至少在这篇博文发表时,它详细解释了如何解决它。

于 2012-03-27T14:33:32.783 回答
0

您可以使用 Azure Blobs 共享签名来允许客户端直接在 Blob 上写入:

http://convective.wordpress.com/2010/01/20/access-control-for-azure-blobs/

干杯。

于 2011-02-09T10:45:04.333 回答
0

这是一篇MSDN 文章,解释了 100 MB TEMP 文件夹的限制,并提供了一个简单的解决方法,其中涉及重定向 TEMP 目录(与 Dave 的答案不同)。

于 2015-10-26T11:46:29.017 回答