2012-08-31 55 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,它实际上是异步上传文件。

到目前为止,它运行正常,更稳定,没有任何异常发生。