2013-12-16 19 views
5

私は私たちのデータの単体テストを実行するためのWebアプリケーションを持っており、Azure Webサイトとして展開したいと考えています。
このアプリケーションに問題がありますかなり大きいzipファイルをダウンロードしています(〜50MB、500ファイル内)。これらのファイルに対していくつかのテストを行っています
これらの大きなファイルはどこでAzure Webサイトに保存すればよいですか?私は "Path.GetTempPath()"を使用していましたが、Azure Webサイトは、Azureサイトの総容量が1000MB、空き容量が約990MBであっても、このフォルダに空きがないことを報告しています。
これらの1000MBをファイル操作に使用する方法はありますか?
これが不可能な場合は、抽出したファイルにAzure Blob Storageを使用する必要がありますか?Azure Webサイトでファイルを保存/抽出する場所は?

+0

はい、blobコンテナを使用することができます – Overmachine

+0

@Overmachineプログラムがディスク上のファイルを予期している場合、blobコンテナとzip抽出プログラムでは動作しません。ストリームで動作するzipライブラリを使用すると、別の話です。 – Fosna

+1

'Path.GetTempPath()'がAzure Webサイトの 'C:\ DWASFiles \ Sites \ {site_name} \ Temp \ 'を指しているようです。 – Fosna

答えて

6

Webサイトの場合、および必要なストレージ要件が、提供されたローカルストレージの制約に適合する場合は、確実にローカルストレージを使用できます。

Path.GetTempPath()は、Azure Webサイトには最適ではありません。私はあなたのウェブアプリケーションのルートフォルダの一部であるフォルダにすべてのファイルを入れなければならない、つまりServer.MapPath("~/tmp/")と言うでしょう。最初にフォルダの有無などを確認してください。そこにはすべてのストレージを利用できます。

Blobについては、各ファイルを別々に解凍して別々にBlobにアップロードする必要があります。ファイルを操作する必要がある場合は、ファイルを再度ダウンロードする必要があります。私は、これが本当の解決策だとは思わない、利用できる十分なローカルストレージがある限り。

+1

Server.MapPath( "〜/ tmp /")のヒントをありがとう、それは動作します! –

+0

Azure Webサイトでは、ローカルストレージはどれくらいありますか? – InTheWorldOfCodingApplications

+0

MultipartMemoryStreamProviderをより良い代替方法として証明できますか?どのファイルサイズがメモリストリームには大きすぎるかがわかります – InTheWorldOfCodingApplications

関連する問題