我正在使用AWS Lambda创建具有HLS内容保护的弹性转码器作业。
按照以下文档: http://docs.aws.amazon.com/elastictranscoder/latest/developerguide/content-protection.html 最后它说: “注意 如果选择No Store,Elastic Transcoder会将您的数据键作为作业对象的一部分返回,但不会存储它。您负责存储数据密钥。“
但是一旦作业完成,我看不到获取数据密钥的方法。在我的AWS Lambda源代码中,我有(javascript):
elastictranscoder.createJob(params, function(err, data) {
if (err) {
console.log('Error!', JSON.stringify(err, null, 2));
context.fail();
} else {
console.log('Success! Data: ', JSON.stringify(data, null, 2));
context.succeed();
}
});
作业成功完成但我没有在数据对象中看到数据键(查看日志时)。我的想法是获取它并添加一些代码来存储数据密钥。
感谢您的帮助!
答案 0 :(得分:2)
根据文档
如果要提供密钥,请指定“不存储”,或者通过阅读作业或作业完成通知来确定密钥。此选项要求您提供许可证获取URL,并在其中提供密钥供视频播放器使用。这是生产系统更常见的情况。
这意味着在创建作业后,我们将在成功响应中找到DataKey(key)
。 Here is the response Object。您可以在Job.Outputs.Encryption.Key
中找到数据密钥
或
您可以从AWS ElasticTranscoder作业详细信息中获取数据密钥,只需将鼠标悬停在“输出”部分->输出密钥(锁定图标)中,(加密密钥为数据密钥)||或播放列表->悬停在主播放列表上
如果要限制或阻止视频未经授权的用户使用,则必须在许可证获取URL上实施身份验证系统,以便视频播放器需要附加数据才能进行身份验证。