0 votes
2 views
in Azure by (20.3k points)

We have a website hosted on Azure. It is media based, and we are using JWPlayer to playback media with HTTP pseudostreaming. The media files are stored on blob in 3 formats - mp4, ogg, webm.

The issue is the content type of media files is set as application/octet-stream for all types. Due to this there are some issues in media playback and progress bar.

How can I set the appropriate Content-type of files stored on blob (like - video/mp4, video/ogg, video/webm)?

I do not want to do it manually for each file by going in blob interface. There must be some other way to do it which I am not aware of. Perhaps a config file, settings file, etc sorts. Or perhaps a code block to set up the Content-type for all files stored in a folder.

Any suggestions? Thanks

1 Answer

0 votes
by (119k points)

This should work:

var storageAccount = CloudStorageAccount.Parse("YOURCONNECTIONSTRING");

var blobClient = storageAccount.CreateCloudBlobClient();

var blobs = blobClient

    .GetContainerReference("thecontainer")

    .ListBlobs(useFlatBlobListing: true)

    .OfType<CloudBlockBlob>();

foreach (var blob in blobs)

{

    if (Path.GetExtension(blob.Uri.AbsoluteUri) == ".mp4")

    {

        blob.Properties.ContentType = "video/mp4";

    }

    // repeat ad nauseam

    blob.SetProperties();

}

Or set up a dictionary so you don't need to write a lot of if statements.

If you are looking for an online course to learn Azure, check out this Azure Training Course by Intellipaat.

Welcome to Intellipaat Community. Get your technical queries answered by top developers !

Categories

...