基于内容保护方案的迁移指南
本文提供了有关将内容保护用例从 v2 API 迁移到新的 Azure 媒体服务 v3 API 的详细信息和指南。
v3 API 中的保护内容
有关具体步骤,请参阅本文末尾的内容保护概念、教程和操作指南。
注意
本文的其余部分将讨论如何通过 .NET 将 v2 内容保护迁移到 v3。 如果需要其他语言或方法的说明或示例代码,请为此页创建一个 GitHub 问题。
弃用 AMS 作为独立的许可证交付服务器(混合本地模式)
v3 API 不再支持将密钥交付服务用作内容保护的独立功能,其中密钥交付服务可用于为通过其他第 3 方源服务器流式传输或交付的内容交付许可。 这意味着 AMS 不再支持 V3 API 中仅交付密钥的方案,并且要求你在使用 v3 交付时使用动态打包和加密从 AMS 源服务流式传输。
使用 v2 API 加密并以“混合”模型交付的现有内容将继续工作(密钥仍可在数据平面上检索),但通过 v2 管理对这些密钥的管理(更新和编辑)平面或 v3 管理平面在 2024 年 2 月 29 日之后将不再工作。
注意
使用 v3 交付的所有新内容将仅支持来自 AMS 的内容保护和流式传输,不再支持“混合”模式。 数据平面将继续交付在 v2 中创建的现有密钥和许可证,但将不再支持通过 v2 或 v3 API 进行管理或更新。
v2 Assets、StreamingLocators 等属性在 v3 中的可见性
在 v2 API 中,使用 Assets
、StreamingLocators
和 ContentKeys
保护流式处理内容。 迁移到 v3 API 时,v2 API Assets
、StreamingLocators
和 ContentKeys
都将在 v3 API 中自动公开,你可以访问其中的所有数据。
然而,不能通过使用 v2 中创建的 v3 API 来更新 v2 实体上的任何属性。
如果需要更新、改变或更改存储在 v2 实体上的内容,请通过 v2 API 对其进行更新,或创建新的 v3 API 实体以将其迁移。
资产标识符差异
若要迁移,需要从 v2 资产访问属性或内容密钥。 务必要了解,v2 API 使用 AssetId
作为主标识密钥,而新的 v3 API 则使用实体的 Azure 资源管理名称作为主要标识符。 (v2 Asset.Name
属性不用作唯一标识符。)使用 v3 API,v2 资产名称现在显示为 Asset.Description
。
例如,如果你以前有一个 ID 为 nb:cid:UUID:8cb39104-122c-496e-9ac5-7f9e2c2547b8
的 v2 资产,则标识符现在位于 GUID 8cb39104-122c-496e-9ac5-7f9e2c2547b8
的末尾。 通过 v3 API 列出 v2 资产时,你会看到这种情况。
使用 v2 API 创建并发布的任何资产在 v3 API 中都将具有 ContentKeyPolicy
和 ContentKey
,而不是 StreamingPolicy
上的默认内容密钥策略。
并行使用 Azure 媒体服务资源管理器 (AMSE) v2 和 AMSE v3 工具
使用 v2 Azure 媒体服务资源管理器工具,以及 v3 Azure 媒体服务资源管理器工具,并排比较通过 v2 API 创建和发布的资产的数据。 所有属性都应该是可见的,但在不同的位置。
使用 .NET 内容保护迁移示例
可以使用媒体服务代码示例中 ContentProtection 下的 v2tov3MigrationSample 找到一个代码示例以比较资产标识符中的差异。
列出流式处理定位符
你可以使用资产实体上的新 v3 方法 ListStreamingLocators 查询与 v2 API 中创建的资产关联的 StreamingLocators
。 同时引用 ListStreamingLocatorsAsync 的 .NET 客户端 SDK 版本
ListStreamingLocators
方法的结果将为你提供定位器的 Name
和 StreamingLocatorId
以及 StreamingPolicyName
。
查找内容密钥
若要查找用于 StreamingLocators
的 ContentKeys
,可以调用 StreamingLocator.ListContentKeysAsync 方法。
有关 v3 API 内容保护的详细信息,请参阅使用媒体服务动态加密保护内容一文。
更改保留相同 ContentKey 的 v2 ContentKeyPolicy
应首先通过 v2 SDK 在资产上取消发布(删除所有流式处理定位符)。 方法如下:
- 删除定位符。
- 取消链接
ContentKeyAuthorizationPolicy
。 - 取消链接
AssetDeliveryPolicy
。 - 取消链接
ContentKey
。 - 删除
ContentKey
。 - 使用 v3
StreamingPolicy
和ContentKeyPolicy
在 v3 中创建新的StreamingLocator
,并指定所需的特定内容密钥标识符和密钥值。
注意
可以使用 v3 API 删除 v2 定位符,但这不会删除内容密钥或内容密钥策略(如果在 v2 API 中创建)。