1

签名的URL如何在Amazon CloudFront的流式视频中工作?

我正在使用aws_cf_signer gem,但无法获得已签名的网址适用于rtmp流式传输的mp4文件。对于静态文件,如text.txt,它工作正常,但不是当我有流发布。Amazon CloudFront的私有视频流在红宝石

例子:

我有文件名为test.mp4所以我如何才能标识的URL出signer.sign()

E.g. signed_url = signer.sign('rtmp://xyz.cloudfront.net/test', :ending => Time.now + 3600)不会产生工作网址。我测试用VLC播放和URL rtmpdump

本身与boto这样创建的分布:

stream_dist = cf.create_streaming_distribution(产地=产地, 启用=真, trusted_signers = [“自“], 注释=” 检查分布“)

回答

2

按照AWS: Restricting End User Access DOC,用于签署RTMP网址的格式不同于HTTP:

使用HTTP,完整的URL唯一地描述了一个对象。您可以在签名中包含URL 。然而,流式发布的内容不能总是由有效的URL描述。在流媒体发行版中,您只能使用流名称 创建签名。例如,如果你的数据流,包括签名是:

example/mp3_name.mp3?Expires=1258237200&Signature=TBD&Key-Pair-Id=PK12345EXAMPLE

的资源值是:

example/mp3_name

对于流分布,不包括前缀,如MP3:或mp4:, 作为策略中的资源名称。

另外,引用MPEG文件时,可能必须省略签名中包含的URL的文件扩展名 。例如,您使用mp3_name而不是mp3_name.mp3。

不幸的是,我不确定aws_cf_signer gem是否支持签署RTMP URL。如果你发现,请让我知道!

+0

我得到它的工作更早,但忘了更新这个问题。所以是的答案是正确的,根据定义aws_cf_signer“支持”rtmp签名,因为只有流名需要签署rtmp资源。例如。如果您有桶名为“测试”和位于桶根的流式文件“video.mp4”,则要签名的字符串就是“video.mp4”。不幸的是,这种行为记录不完整。 – Fdr 2012-04-26 11:05:58

+0

存储桶是否需要特殊权限?我一直试图解决这个问题,现在几天,糟糕的文档无法帮助解决问题。 – dbslone 2014-03-24 18:11:21