c# - Blob 引用的 BlobType 与 Blob 的 BlobType 不匹配?

标签 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 的正确方法吗?

最佳答案

我不知道你是如何得到这个错误的,但它看起来好像与 BlobType 有关。不确定您是否已经知道,但有两种类型的 blob: block 和页。对于图像,通常最好使用 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"]

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

相关文章:

c# - 如何将字符串转换为以 null 结尾的字符串?

asp.net-mvc - 将 Telerik Datepicker 添加到动态添加的表单字段

c# - 使用 ASP.NET MVC3 处理注册向导的正确方法是什么?

azure - 服务结构不健康的服务影响其他服务

azure - 如何将用户分配到 Azure Active Directory 中所有可能的组?

angular - 将多个版本的 Angular 应用程序部署到 Azure 应用服务

C# Math.Round 模棱两可的问题

c# - 使用 ASP.NET Identity 实现权限

c# - PLINQ AsParallel().ForAll() 访问资源

asp.net-mvc - 是否有正确的方法来检查 EditorTemplate 中模型的属性值