Azure媒体服务:存储加密的rest api不起作用

时间:2016-01-27 14:50:59

标签: azure azure-media-services

我正在使用azure media services rest api创建一个应该存储加密的资产。

以下步骤成功:

1:使用“选项”创建资产:“1”(存储加密)。 2:使用ContentKeyType创建内容密钥“:”1“”ProtectionKeyType“:”0“。 3:将内容密钥与创建的资产相关联。 4:创建资产文件。 5:创建了Access策略。 6:创建SAS url(StartTime是当前时间前五分钟)。 7:通过正确指定文件名将文件上传到SAS URL(我将块上传到blob存储)。 8:删除了定位器& AcessPolicy。

问题:

  1. 我无法对资产进行编码。
  2. 从blob存储中,我可以下载文件并播放。该文件未在存储中加密!
  3. 进一步推论

    1. 我可以使用AMS Explorer验证资产文件(附图像)。
    2. 从AMS资源管理器下载文件不起作用。 enter image description here

1 个答案:

答案 0 :(得分:2)

来自文档 - "如果您希望在上传之前加密未加密的媒体,则应在创建资产时指定AssetCreationOptions.StorageEncrypted。这会在将媒体上载到Azure存储之前对其进行本地加密,然后将其加密存储。"

来自REST API参考(https://msdn.microsoft.com/en-us/library/azure/hh974277.aspx) -

StorageEncrypted = 1:指定在创建资产时应加密资产的文件以进行上传和存储。

提供StorageEncryption选项是什么意思,您只需告诉系统您的资产在上传之前已加密。 .Net SDK为你做这件事,但当你使用rest api时,你必须自己加密文件才能上传。

您可以查看https://github.com/Azure/azure-sdk-for-media-services/blob/dev/src/net/Client/Entities/AssetFileData.cs,了解如何在.net SDK中实现资产文件的加密。

您必须创建内容密钥并将其与资产相关联并将其用于加密。 获得所有这些信息后,azure媒体服务将能够在编码期间将您的内容解密为其他格式。