前一段时间在忙于平台的构建工作,在工作中也遇到了很多的问题一直没时间进行整理。 最近我将会把构建云计算平台中遇到的问题和解决方法 列在我的博客上,如果有什么不对的地方,或都大家有什么更好的解决方法,欢迎留言讨论。
azure storage emulator 是azure在本地的模拟存储器,在模拟器上用blob.UploadFromStream上传大文件(大于阀值,也就是64M),会出报错 “the specified blob already exists”。 然后你通过 Azure storage explore去看该文件,大小为0。 通过反复查资料和自己的实验,发现这应该 是一个azure storage emulator的BUG。 真实的 azure storage 不会出现这个问题。 但是这个问题也有办法解决。就是采用try catch语句。
try
{
streamResult.Position = 0;
Blob.UploadFromStream(streamResult);
}
catch
{
streamResult.Position = 0;
Blob.UploadFromStream(streamResult);
}
两次使用blob.UploadFromStream 就可以上传成功。
putblockslist ,putblock 和 UploadFromStream之间的关系。