2

最大 2GB の大きなファイルをアップロードしたいというアプリケーションがあり、このファイルを処理した後、blobstorage に blob として保存したいと考えています。SWFUploader を使用してファイルをアップロードしています (プログレス バーを表示する必要があります)。

問題は、100 MB を超えるファイルをアップロードできないことです。最大 100 MB (場合によっては 90 ~ 95 MB) のファイルをアップロードすると、アップロード プロセス全体が再開され、失敗することもあります。このタスク全体で Webrole プロジェクトを使用しています。

だから私の質問は: Windows azure webrole プロジェクト (基本的にその Asp.net Web サイトなので、Web サーバーにファイルをアップロードしたい) にこのような大きなファイルをアップロードし、そこで処理してから 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 Blob の共有署名を使用して、クライアントが BLOB に直接書き込むことができるようにすることができます。

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

乾杯。

于 2011-02-09T10:45:04.333 に答える
0

これは、100 MBのTEMPフォルダーの制限を説明し、TEMPディレクトリをリダイレクトすることを含む簡単な回避策を提供するMSDNの記事です(Daveの回答とは異なります)。

于 2015-10-26T11:46:29.017 に答える