1

签名 URL 如何用于 Amazon CloudFront 中的流式视频?

我正在使用aws_cf_signer gem,但无法为 rtmp 流式传输的 mp4 文件获取签名的 url。对于像 text.txt 这样的静态文件,它可以正常工作,但当我进行流式分发时就不行了。

例子:

我有名为 test.mp4 的文件,那么如何从中获取签名的 url signer.sign()

例如signed_url = signer.sign('rtmp://xyz.cloudfront.net/test', :ending => Time.now + 3600),不产生工作 url。我已经用 VLC 播放器测试了 URL 和rtmpdump

发行版本身是使用boto创建的,如下所示:

stream_dist = cf.create_streaming_distribution(origin=origin, enabled=True,trusted_signers=["Self"], comment="test distribution")

4

1 回答 1

2

根据AWS:限制最终用户访问文档,签名 RTMP url 的格式与 HTTP 不同:

使用 HTTP,完整的 URL 唯一地描述了一个对象。您可以在签名中包含 URL。但是,流分发的内容并不总是由有效的 URL 描述。在流式分发中,您仅使用流名称来创建签名。例如,如果您的包含签名的流是:

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

RESOURCE 的值为:

example/mp3_name

对于流式分发,您不要在策略中为资源名称添加前缀,例如 mp3: 或 mp4:。

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

不幸的是,我不确定 aws_cf_signer gem 是否支持签署 RTMP url。如果你发现了,请告诉我!

于 2012-04-25T06:20:40.250 回答