user3838168
user3838168

Reputation: 53

Get Azure BlockBlob Content Type

I am trying to get "Content Type" from Azure BlockBlob. It's seems like not work.

enter image description here

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:

enter image description here

Upvotes: 5

Views: 7435

Answers (3)

ScubaSteve
ScubaSteve

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

Vivien Chevallier
Vivien Chevallier

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

Gaurav Mantri
Gaurav Mantri

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

Related Questions