0

你知道将太多文件上传到 Azure Blob 容器的最佳方法吗?

我目前正在做一些事情将多个文件上传到 Azure blob 存储。文件的数量可能很大,例如 30,000 或更多(每个文件的大小可能为 10KB~1MB)。首先,我有一个文件位置列表,然后我会使用 Parallel.Foreach 上传文件。像这样的代码片段:

`列出位置=...

Parallel.Foreach(locations, location=>
{
...
UploadFromStream(...);
...
});`
代码运行结果不一致。

有时它运行良好,我可以看到上传到 Azure blob 容器的所有文件。

有时,我会遇到这样的异常:

服务器未能验证请求。确保 Authorization 标头的值正确形成,包括签名。,内部异常:远程服务器返回错误:(403)禁止

有时,我遇到超时异常。

我已经解决这个问题好几天了,不幸的是,我还没有一个完美的解决方案。所以我想知道当你处理类似的场景时你会怎么做,当上传太多文件到 Azure blob 存储时你会怎么做?

4

1 回答 1

0

最后,我还没有发现我的代码有什么问题。

但是,我已经找到了解决这个问题的方法。我过期了 Parallel.Foreach,只使用常见的 foreach。然后我使用 BeginuploadFromStream 方法而不是 UploadFromStream,它实际上是异步上传文件。

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

于 2012-09-04T02:12:57.467 回答