我将文件存储在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.DownloadToFile
或DownloadToByteArray
或DownloadAsText
。哪个与您最相关。
不确定您要确切执行的操作是什么,但是由于它是一张图片,因此您可以对该位置进行网络请求(如果对您来说更方便),例如<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/