blob引用的BlobType与blob的BlobType不匹配?

时间:2012-01-12 05:23:59

标签: c# asp.net-mvc-3 azure cloud blob

我在Blob容器中有以下代码存储文件,即:

  CloudBlob blob = container.GetBlobReference("Images/page11/Orange box.png");
  blob.UploadFromStream(mnm);
  blob.Metadata["FileName"] = "Orange box.png";
  blob.SetMetadata();

我已成功存储在容器中,如“Images / page11 / Orange box.png”,但是当我获取属性时出现错误 Blob引用的BlobType与blob的BlobType不匹配使用此代码。

            blob.FetchAttributes();
            return true;

这是从容器中获取Blob的正确方法吗?

1 个答案:

答案 0 :(得分:2)

我不知道你是如何准确地得到这个错误的,但它看起来好像是与BlobType有关。不确定你是否已经知道但有两种类型的blob,块和页面。对于图像,使用Block blob通常会更好。因此,将第一行更改为container.GetBlockBlobReference("etc...");

无论如何,要回答您的问题以从容器中获取blob,您可以执行blob.DownloadToFileDownloadToByteArrayDownloadAsText。哪个与你最相关。

不确定您要做什么,但是因为它是一张图片,所以如果对您来说更方便,您可以对该位置进行网络请求,例如<img src="http://myapp.blob.core.windows.net/myaccount/images/page11/orange box.png" />或直接在浏览器中找到它。

看起来你试图在那段代码中找到属性?如果是这样,您只需执行blob.Attributes.MetaData["FileName"]

即可