1. ホーム
  2. c#

[解決済み] Blobに格納されているメディアファイルのContent-typeを設定する

2023-03-29 12:24:47

質問

私たちはAzureでホストされているウェブサイトを持っています。それはメディアベースであり、我々はHTTP疑似ストリーミングでメディアを再生するためにJWPlayerを使用しています。メディアファイルは、3つのフォーマット(mp4、ogg、webm)でblobに保存されています。

問題は、メディア ファイルのコンテンツ タイプが、すべてのタイプで application/octet-stream として設定されていることです。このため、メディアの再生とプログレス バーにいくつかの問題があります。

blob に保存されたファイル (video/mp4, video/ogg, video/webm など) の適切な Content-type を設定するにはどうしたらよいですか?

blob インターフェイスに移動して、各ファイルに対して手動でそれを実行したくありません。私が知らないだけで、何か他の方法があるはずです。おそらく、構成ファイル、設定ファイル、その他のソート。または、フォルダに格納されているすべてのファイルの Content-type を設定するコード ブロックがあるかもしれません。

何か提案はありますか? ありがとうございます。

どのように解決するのですか?

これは動作するはずです。

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();
}

あるいは、if文をたくさん書かなくてもいいように、辞書を設定する。