Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache 设置Mp3文件的流媒体授权_Apache_Authentication_Hosting_Mp3_Audio Streaming - Fatal编程技术网

Apache 设置Mp3文件的流媒体授权

Apache 设置Mp3文件的流媒体授权,apache,authentication,hosting,mp3,audio-streaming,Apache,Authentication,Hosting,Mp3,Audio Streaming,我想通过基本的html5音频播放器在需要登录的网页上播放一些mp3文件,但mp3不能公开访问 我的第一个想法是设置一个子域并使用基本身份验证,这样我就可以在url中传递凭据,但事实证明,这在chrome中不起作用,用户请求凭据时会弹出一条身份验证消息 从那以后,我一直在尝试一些方法,比如通过php代理请求或让php为我流式传输音频,但我似乎无法让它工作。不管我找到了关于这个主题的指南或教程,我都会收到一条来自浏览器的消息,说mime类型无效。我已经尝试过使用响应头和调整我找到的脚本或库,但我有点

我想通过基本的html5音频播放器在需要登录的网页上播放一些mp3文件,但mp3不能公开访问

我的第一个想法是设置一个子域并使用基本身份验证,这样我就可以在url中传递凭据,但事实证明,这在chrome中不起作用,用户请求凭据时会弹出一条身份验证消息

从那以后,我一直在尝试一些方法,比如通过php代理请求或让php为我流式传输音频,但我似乎无法让它工作。不管我找到了关于这个主题的指南或教程,我都会收到一条来自浏览器的消息,说mime类型无效。我已经尝试过使用响应头和调整我找到的脚本或库,但我有点不知所措


任何关于如何实现这一点的建议都将非常好

处理这个问题有两种一般方法。两者都有许多具体的实现

方法1:验证每个媒体文件请求的凭据 这与处理应用程序的任何其他请求相同。无论您如何进行登录授权,请以同样的方式处理MP3

方法2:对URL进行预签名 如果您正在使用CDN,这是一个现成的选项。您的应用程序生成URL,并使用URL基本部分的散列和密码对其进行签名。CDN知道(或者可以通过其他方式验证)URL是使用授权密钥签名的,不需要重新验证。这是有效的,并确保系统之间职责的适当分离。作为奖励,这些URL可以设置为只工作几分钟。这就像为每个单独的文件生成一个密码,该密码只对一个人有效(理想情况下),并且只在自动转换为新密码之前的短时间内有效。您的应用程序每次生成URL时都会有效地发出此密码(签名)