2012-04-01 134 views
3

我使用JWPlayer从Azure blob存储流式传输视频,JWPlayer需要crossdomain.xml才能播放视频。jwplayer的crossdomain.xml文件的访问路径

我试图将crossdomain.xml文件放在根目录中,并在http://127.0.0.1:10000/devstoreaccount1/crossdomain.xml中的代码,但JWPlayer在http://127.0.0.1:10000/crossdomain.xml中查找它。

有没有办法将JWPlayer重定向到http://127.0.0.1:10000/devstoreaccount1/crossdomain.xml而不是默认的http://127.0.0.1:10000/crossdomain.xml

回答

1

我经常用这个代码片断创建Crossdomainpolicy这不会破坏你的代码= true

-1

您可以尝试将Web服务器配置为从文档根目录中的任何位置获取,我假设位于/devstoreaccount/中,该文件位于该位置,并在请求/crossdomain.xml时将其返回。

或者,你可以符号链接/devstoreaccount/crossdomain.xml- >/crossdomain.xml

var account = CloudStorageAccount.Parse(ConfigurationManager.AppSettings[ConfigKey]); 
      var blobs = account.CreateCloudBlobClient(); 
      CreateCrossDomainPolicy(blobs); 

private static void CreateCrossDomainPolicy(CloudBlobClient blobs) 
    { 
     try 
     { 
      blobs.GetContainerReference("$root").CreateIfNotExist(); 
      blobs.GetContainerReference("$root").SetPermissions(
       new BlobContainerPermissions() 
       { 
        PublicAccess = BlobContainerPublicAccessType.Blob 
       }); 
      var blob = blobs.GetBlobReference("clientaccesspolicy.xml"); 
      blob.Properties.ContentType = "text/xml"; 
      blob.UploadText(@"<?xml version=""1.0"" encoding=""utf-8""?> 
       <access-policy> 
        <cross-domain-access> 
        <policy> 
         <allow-from http-methods=""*"" http-request-headers=""*""> 
         <domain uri=""*"" /> 
         <domain uri=""http://*"" /> 
         </allow-from> 
         <grant-to> 
         <resource path=""/"" include-subpaths=""true"" /> 
         </grant-to> 
        </policy> 
        </cross-domain-access> 
       </access-policy>"); 
     } 
     catch (Exception Ex) 
     { 
      throw Ex; 
     } 
    } 

在ConfigKey我会通过我的实际Azure存储账号密码或Uselocalstorage:如果不知它是有联系的/devstoreaccount/crossdomain.xml.