2012-08-31 54 views
0

您知道將太多文件上傳到Azure Blob容器的最佳方法嗎?將大量文件上傳到Blob

我目前正在做一些上傳多個文件到Azure blob存儲。文件數量可能很大,例如30,000或更多(每個文件大小可能爲10KB〜1MB)。首先,我有一個文件位置列表,然後我將使用Parallel.Foreach上傳文件。代碼片段是這樣的:

`列表位置= ...

Parallel.Foreach(地點,位置=>
{
...
UploadFromStream(...);
..
});`
代碼運行到不一致結果。

有時它運行良好,我可以看到所有上傳到Azure blob容器的文件。

有時候,我會得到的例外是這樣的:

服務器無法驗證請求。確保授權標頭的值正確形成,包括簽名。內部例外:遠程服務器返回錯誤:(403)禁止

有時,我收到超時異常。

我已經反對這個問題好幾天了,不幸的是,我還沒有找到完美的解決方案。所以我想知道如何處理類似的情況,當將太多文件上傳到Azure blob存儲時,您會怎麼做?

回答

0

最後,我還沒有發現我的代碼有什麼問題。

但是,我找到了解決這個問題的方法。我過期了Parallel.Foreach,只是使用常見的foreach。然後我使用BeginuploadFromStream方法代替UploadFromStream,它實際上是異步上傳文件。

到目前爲止,它運行正常,更穩定,沒有任何異常發生。