如何在Azure Media Services中使用CDN自定义域名创建流式定位器?
关于Azure Media Services中使用CDN自定义域名的正确方式
你的结论是正确的,当前的实现方式就是AMS结合CDN自定义域名的正确做法,以下是具体说明:
1. 流式定位器与域名的关系
流式定位器是AMS中用于授权媒体内容访问的核心实体,它不绑定任何特定域名。Azure门户中显示定位器使用默认主机名,只是因为它关联的流式端点默认域名是AMS提供的官方格式域名,这只是一个参考展示,不会限制你使用自定义域名。
2. 启用CDN的流式端点的自定义域名逻辑
当流式端点启用CDN后,AMS的StreamingEndpoint.customHostNames字段仅在禁用CDN时生效。CDN的自定义域名是在CDN配置层完成的,AMS流式端点本身不会感知CDN的自定义域名设置,因此必须在代码生成播放URL时手动替换主机名。
3. 正确的代码实现
你修改UriBuilder.Host为CDN自定义域名的代码是正确的,示例如下:
ListPathsResponse paths = await client.StreamingLocators.ListPathsAsync( config.ResourceGroup, config.AccountName, streamingLocatorName, cancellationToken); List<string> streamingUrls = new (); foreach (StreamingPath path in paths.StreamingPaths) { UriBuilder uriBuilder = new() { Scheme = "https", Host = "my-custom-domain-for-stream.com", // 替换为你的CDN自定义域名 Path = path.Paths.FirstOrDefault() ?? String.Empty }; streamingUrls.Add(uriBuilder.ToString()); }
只要你的CDN自定义域名已经正确完成DNS解析并关联到AMS流式端点的CDN端点,替换后的URL就能正常提供流媒体服务。
内容的提问来源于stack exchange,提问作者Gabriel Heming
相关产品推荐
相关产品推荐

