Reputation: 53
I am trying to get "Content Type" from Azure BlockBlob. It's seems like not work.
This file's "Content Type" is "image/jpeg" as you see.
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");
And it always returns empty as you see in this picture:
Upvotes: 5
Views: 7435
Reputation: 8270
Another way to get it is GetBlobReferenceFromServer
or GetBlobReferenceFromServerAsync
. This returns an ICloudBlob
, which you can do:
var blob = container.GetBlobReferenceFromServer("009fc790-2e8e-4b59-bbae-3b5e2e845a3b");
string contentType = blob.Properties.ContentType;
Note, this makes a round trip to the server and if the blob does not exist, it will throw an exception.
Upvotes: 0
Reputation: 1522
To get the blob properties you have to first fetch the attributes:
blob.FetchAttributes()
Then you'll be able to get the content type through:
blob.Properties.ContentType
Upvotes: 5
Reputation: 136216
var blocBlob = container.GetBlockBlobReference("009fc790-2e8e-4b59-bbae-3b5e2e845a3b");
Code above simply creates an instance of CloudBlockBlob
and initializes it with default properties. You would need to fetch the blob properties (as mentioned in the answer included in the comment above) and then you will see the properties filled up. To fetch blob properties, you would need to call FetchAttributes()
method.
var blocBlob = container.GetBlockBlobReference("009fc790-2e8e-4b59-bbae-3b5e2e845a3b");
blocBlob.FetchAttributes();
Then you should be able to see the content type property of the blob.
Upvotes: 10