【问题标题】:Playing m3u8 from Amazon S3 + CloudFront with Signed URL in Android在 Android 中使用签名 URL 从 Amazon S3 + CloudFront 播放 m3u8
【发布时间】:2020-04-24 12:53:33
【问题描述】:

我能够访问带有签名 URL 的播放列表文件 (.m3u8)。但问题是,要访问播放列表中的流文件(.ts),每个文件的 URL 也需要签名。

例如:

我可以使用签名 URL http://abcdefg.cloudfront.net/media/playlist.m3u8?Expires=xxxxxxxx&Policy=yyyyyyyyyyyyy&Signature=zzzzzzzzzzzzzz&Key-Pair-Id=kkkkkkkkkkkkkkkkk 访问 playlist.m3u8

#EXTM3U
#EXT-X-TARGETDURATION:10
#EXTINF:13
playlist-00000.ts
#EXTINF:12,
playlist-00001.ts
#EXTINF:12,
playlist-00002.ts

但是里面的每个ts文件也应该像

http://abcdefg.cloudfront.net/media/playlist-00000.ts?Expires=xxxxxxxx&Policy=yyyyyyyyyyyyy&Signature=zzzzzzzzzzzzzz&Key-Pair-Id=kkkkkkkkkkkkkkkkk

我必须为播放列表中的每个 .ts 文件签署每个 URL。

不幸的是,我没有看到任何媒体播放器可以在获取 ts 文件之前处理 URL 参数的附加。

如果可能,我需要这样的播放器回调:

public String onStreamFileReadyForPlaying(String pathToTsFile)
{
     //I could append the parameters here
     return pathToTsFile + "?Expires=xxxxxxxx&Policy=yyyyyyyyyyyyy&Signature=zzzzzzzzzzzzzz&Key-Pair-Id=kkkkkkkkkkkkkkkkk"
}

【问题讨论】:

    标签: android amazon-s3 amazon-cloudfront audio-streaming


    【解决方案1】:

    只需签署播放列表中的网址。

    仅此而已。

    【讨论】:

    • 嗨,你的意思是说,我用播放列表中的完整签名 URL 替换每个 .ts 文件名?就像 playlist-00000.ts 一样,我将其替换为 abcdefg.cloudfront.net/media/… ????
    • 我们之前尝试过类似的解决方案。但是我们只在末尾附加了参数,没有在前面添加http://.....。我们认为玩家会自动添加它们。但是现在像你说的那样用完整的 URL 替换它,它就起作用了。非常感谢! :)
    • @JLT 您能否提供一些有关如何阅读文件以进行每次签名的更多信息。我也卡在了同一个地方
    【解决方案2】:

    “使用签名 URL”和“签名 Cookie”有两种方式

    我认为你必须使用“签名的 Cookies”

    我在下面的链接中找到了为什么使用“签名 Cookie” https://docs.amazonaws.cn/en_us/AmazonCloudFront/latest/DeveloperGuide/private-content-choosing-signed-urls-cookies.html

    在以下情况下使用签名 cookie:

    • 您希望提供对多个受限文件的访问权限,例如,HLS format 中某个视频的所有文件或所有 网站订阅者区域中的文件。

    我还没有尝试“签名 Cookie”。但我有同样的问题。 如果你已经完成了“Signed Cookies”,可以给反馈吗?

    链接下方是如何使用“Sigend Cookies”的文档 https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/private-content-signed-cookies.html

    【讨论】:

      【解决方案3】:

      您可以使用带有自定义的云端签名 url,以允许使用单个签名访问文件夹中的所有文件。

      AWS Documentation

      为此,您已经生成了一个云端密钥对。要生成转到顶部下拉列表中的 my security credentials 并选择 cloufront。在那里您可以看到生成密钥对的选项。

      【讨论】:

        猜你喜欢
        • 2021-03-31
        • 2015-05-21
        • 2020-09-15
        • 2018-12-25
        • 2017-02-26
        • 2019-07-15
        • 2016-12-06
        • 2011-02-04
        • 2017-09-28
        相关资源
        最近更新 更多