我将文件存储在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的正确方法吗?

最佳答案

我不知道您是怎么得到该错误的,但是看起来好像与BlobType有关。不知道是否已经知道,但是有两种类型的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"]

关于c# - Blob引用的BlobType与Blob的BlobType不匹配?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8830518/

10-09 14:34