您知道将太多文件上传到Azure Blob容器的最佳方法吗?
我目前正在做一些事情来将多个文件上传到Azure blob存储。文件数量可能很大,如30,000或更多(每个文件的大小可能是10KB~1MB)。首先,我有一个文件位置列表,然后我将使用Parallel.Foreach上传文件。像这样的代码片段:
`列出位置= ...
Parallel.Foreach(locations,location =>
{
...
UploadFromStream(...);
...
});`
代码运行到不一致的结果。
有时它运行良好,我可以看到所有文件都上传到Azure blob容器。
有时,我会得到这样的例外:
服务器无法验证请求。确保正确形成Authorization标头的值,包括签名。内部异常:远程服务器返回错误:(403)Forbidden
有时,我遇到了超时异常。
我已经反对这个问题好几天了,不幸的是,我还没有完美的解决方案。所以我想知道你在处理类似场景时如何做,在将太多文件上传到Azure blob存储时怎么做?
答案 0 :(得分:0)
最后,我还没有发现我的代码有什么问题。
但是,我找到了解决此问题的方法。我过期了Parallel.Foreach,只是使用普通的foreach。然后我使用BeginuploadFromStream方法而不是UploadFromStream,它实际上是异步上传文件。
到目前为止,它运行得更好,更稳定,没有任何异常发生。