4

.mp4Azure BLOB ストレージに保存されているビデオを取得して、Azure でホストされている Web サイトに表示するのに問題があります。ビデオ タイプは に設定されvideo/mp4、ストレージ アカウントはパブリックではありませんが、Web ロールにリンクされています。次のコードを使用してバージョンを更新しました。

var credentials = new StorageCredentials("myaccountname", "mysecretkey"); 
var account = new CloudStorageAccount(credentials, true); 
var client = account.CreateCloudBlobClient(); 
var properties = client.GetServiceProperties(); 
properties.DefaultServiceVersion = "2012-02-12"; 
client.SetServiceProperties(properties); 

動画プレーヤーは使用せず、HTML5 ビデオ タグのみを使用しています。また、派手なものは必要ありません。ビデオを再生したいだけです。

Chrome の開発ツールのネットワーク タブを見るとGET、動画を取得するためのリクエストに 2 つのエントリがあります。最初のステータスは(pending)で、次のステータスは です(canceled)

また、ウェブサイトのコンテンツ フォルダにあるビデオへのリンクも付けました。これも で始まりますpendingが、で解決され204 Partial Content、ビデオは問題なく再生されます。

私は見るものがなくなったので、助けや指針をいただければ幸いです。

4

1 に答える 1

8

上記のコメントに基づいて、必要なのはShared Access Signature. 以下のコードを使用して、mp4 ファイルに共有アクセス署名を作成します。

        var credentials = new StorageCredentials("myaccountname", "mysecretkey");
        var account = new CloudStorageAccount(credentials, true);
        var container = account.CreateCloudBlobClient().GetContainerReference("yourcontainername");
        var blob = container.GetBlockBlobReference("yourmp4filename");
        var sas = blob.GetSharedAccessSignature(new SharedAccessBlobPolicy()
        {
            Permissions = SharedAccessBlobPermissions.Read,
            SharedAccessExpiryTime = DateTime.UtcNow.AddHours(1),//Set this date/time according to your requirements
        });
        var urlToBePlayed = string.Format("{0}{1}", blob.Uri, sas);//This is the URI which should be embedded in your video player.
于 2013-10-29T10:56:35.157 に答える