Windows Azure:34 MBのファイルをブロブにアップロードできません
-
26-09-2019 - |
質問
私は34 MBのファイルをブロブにアップロードしようとしていましたが、それは私にいくつかのエラーを促しています
XML Parsing Error: no element found
Location: http://127.0.0.1:83/Default.aspx
Line Number 1, Column 1:
私は何をすべきか....それを解決する方法
サイズ500kbの小さなファイルをアップロードすることができます。しかし、サイズ34 MBのファイルがBlobコンテナにアップロードされています
使用してみました
protected void ButUpload_click(object sender, EventArgs e)
{
// store upladed file as a blob storage
if (uplFileUpload.HasFile)
{
name = uplFileUpload.FileName;
// get refernce to the cloud blob container
CloudBlobContainer blobContainer = cloudBlobClient.GetContainerReference("documents");
// set the name for the uploading files
string UploadDocName = name;
// get the blob reference and set the metadata properties
CloudBlob blob = blobContainer.GetBlobReference(UploadDocName);
blob.Metadata["FILETYPE"] = "text";
blob.Properties.ContentType = uplFileUpload.PostedFile.ContentType;
// upload the blob to the storage
blob.UploadFromStream(uplFileUpload.FileContent);
}
}
しかし、私はそれをアップロードすることができません..誰でもそれをする方法を教えてもらえますか....
解決
ブロックブロブを使用して、64MBを超えるブロブをアップロードする必要があります。ファイルをブロックに分割し、すべてのブロックをアップロードし(各ブロックを一意の文字列識別子に関連付けます)、最後にブロックIDのリストをBLOBに投稿して、一度にバッチ全体をコミットします。
ブロックでのアップロードは、サイズが64MB未満の大きなブロブにも推奨されます。ネットワーク接続のしゃっくりまたはインターネットを介したルーティングで非常に簡単に、非常に大きなアップロードで1つか2つのフレームを失うことができます。これにより、アップロード全体が破損または無効になります。小さなブロックを使用して、宇宙イベントへの露出を減らします。
詳細については、このディスカッションスレッド: http://social.msdn.microsoft.com/forums/ennz/windowsazure/thread/f4575746-a695-40ff-9e49-ffe4c99b28c7
他のヒント
プロジェクトにログインして、問題を追跡しようとすることから始めます。あなたが思う場所で起こっていないかもしれません。許可エラーもあるかもしれません。ダミーデータをデータベースに追加してみてください。それでも失敗した場合、それは潜在的な問題になる可能性があります。
しかし、いくつかのデバッグ、ロギング、コードレビューで自分でそれを追跡します。私はあなたがそのように問題の一番下に到達できると思います。また、コードをより堅牢にするのにも役立ちます。
ここではブロブを使用できます。あなたのWebリクエストサイズの問題だと思います。この設定をWeb.configで変更すると、要素のmaxrequestlength属性の数を増やすことができます。 500kbのチャンクを送信している場合、帯域幅を無駄にしてパフォーマンスを低下させています。チャンクあたり1〜2 MBなどのより大きなデータのチャンクを送信します。チャンキングアップロードについては、私のSilverlightまたはHTML5ベースのアップロードコントロールを参照してください。 Azureファイルのアップロードコントロールを選択:SilverlightとTPLまたはHTML5およびAJAX
BLOB転送ユーティリティを使用して、すべてのBLOBファイルをダウンロードしてアップロードします。
これは、効果的な方法で何千もの(小/大型)ブロブ転送を処理するツールです。
バイナリとソースコード、こちら: http://bit.ly/blobtransfer