【问题标题】:Private video streaming for Amazon CloudFront in rubyRuby 中 Amazon CloudFront 的私有视频流
【发布时间】:2012-04-29 02:11:17
【问题描述】:

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

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

示例:

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

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

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

stream_dist = cf.create_streaming_distribution(origin=origin, 启用=真, 受信任的签名者=[“自我”], 评论="测试分布")

【问题讨论】:

    标签: ruby amazon-web-services video-streaming rtmp amazon-cloudfront


    【解决方案1】:

    根据AWS: Restricting End User Access doc,签名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 网址。如果你发现了,请告诉我!

    【讨论】:

    • 我早点得到它的工作,但忘记更新这个问题。所以是的,答案是正确的,根据定义 aws_cf_signer “支持” rtmp 签名,因为签名 rtmp 资源只需要流名称。例如。如果您有名为“test”的存储桶和位于存储桶根目录中的流式文件“video.mp4”,那么要签名的字符串就是“video.mp4”。不幸的是,这种行为没有得到很好的记录。
    • bucket是否需要特殊权限?几天来我一直在尝试解决这个问题,但糟糕的文档无助于尝试解决问题。
    猜你喜欢
    • 2012-05-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-25
    • 1970-01-01
    • 2015-05-17
    • 2011-11-12
    • 2017-11-19
    • 2013-04-22
    相关资源
    最近更新 更多