0

あまりにも多くのファイルをAzureBlobコンテナーにアップロードするための最良の方法を知っていますか?

現在、AzureBLOBストレージに複数のファイルをアップロードするために何かをしています。ファイルの数は30,000以上のように膨大な場合があります(各ファイルのサイズは10KB〜1MBの場合があります)。まず、ファイルの場所のリストがあり、次にParallel.Foreachを使用してファイルをアップロードします。このようなコードスニペット:

`リストの場所=..。

Parallel.Foreach(locations、location =>
{
...
UploadFromStream(...);
...
});`
コードが実行されて結果が不整合になります。

正常に動作する場合もありますが、AzureBLOBコンテナーにアップロードされたすべてのファイルを確認できます。

時々、私はこのような例外を受け取ります:

サーバーはリクエストの認証に失敗しました。Authorizationヘッダーの値が署名を含めて正しく形成されていることを確認してください。内部例外:リモートサーバーがエラーを返しました:(403)禁止

時々、タイムアウト例外が発生しました。

私はこの問題に数日間取り組んできましたが、残念ながら、まだ完璧な解決策はありません。したがって、同様のシナリオを処理する場合はどうすればよいですか、Azure BLOBストレージにアップロードするファイルが多すぎる場合はどうすればよいですか?

4

1 に答える 1

0

最後に、コードの何が問題になっているのかわかりません。

しかし、私はこの問題の解決策を見つけました。Parallel.Foreachの有効期限が切れますが、commonforeachを使用してください。次に、UploadFromStreamの代わりにBeginuploadFromStreamメソッドを使用します。これは、実際にはファイルを非同期でアップロードします。

これまでのところ、例外なく、完全に、より安定して実行されています。

于 2012-09-04T02:12:57.467 に答える