我想获得"内容类型"来自Azure BlockBlob。这似乎不起作用。
此文件"内容类型"是" image / jpeg"正如你看到的。
var cloudConn = System.Configuration.ConfigurationManager.ConnectionStrings["StoreAccount"].ConnectionString;
var storageAccount = CloudStorageAccount.Parse(cloudConn);
var blobClient = storageAccount.CreateCloudBlobClient();
var container = blobClient.GetContainerReference("containername");
var blocBlob = container.GetBlockBlobReference("009fc790-2e8e-4b59-bbae-3b5e2e845a3b");
如图所示,它总是返回空白:
答案 0 :(得分:4)
var blocBlob = container.GetBlockBlobReference("009fc790-2e8e-4b59-bbae-3b5e2e845a3b");
上面的代码只是创建CloudBlockBlob
的实例,并使用默认属性对其进行初始化。您需要获取blob属性(如上面注释中包含的答案中所述),然后您将看到填充的属性。要获取blob属性,您需要调用FetchAttributes()
方法。
var blocBlob = container.GetBlockBlobReference("009fc790-2e8e-4b59-bbae-3b5e2e845a3b");
blocBlob.FetchAttributes();
然后你应该能够看到blob的内容类型属性。
答案 1 :(得分:2)
要获取blob属性,您必须先获取属性:
blob.FetchAttributes()
然后,您将能够通过以下方式获取内容类型:
blob.Properties.ContentType
答案 2 :(得分:0)
另一种获取方法是GetBlobReferenceFromServer
或GetBlobReferenceFromServerAsync
。这将返回一个ICloudBlob
,您可以执行以下操作:
var blob = container.GetBlobReferenceFromServer("009fc790-2e8e-4b59-bbae-3b5e2e845a3b");
string contentType = blob.Properties.ContentType;
请注意,这会使服务器往返,如果blob不存在,它将引发异常。