我们正在使用第三方服务将流媒体添加到我们的网站。
基本工作流程旨在如下所示:
- 用户登录我们的网站
- 用户单击链接以加载流式播客/视频。
- 该链接指向一个 PHP 脚本,该脚本验证该用户是否有权访问所请求的资源。
- php 脚本退出,流被传送到客户端。
我们的流媒体文件都会以flv的形式上传到第三方服务,从长尾播放器播放。
我的问题是关于上面的步骤 3 和 4。如何针对服务器端脚本进行身份验证,然后允许传递流而不让 PHP 脚本永远运行,这会大大增加我们服务器的负载?
我们正在使用第三方服务将流媒体添加到我们的网站。
基本工作流程旨在如下所示:
我们的流媒体文件都会以flv的形式上传到第三方服务,从长尾播放器播放。
我的问题是关于上面的步骤 3 和 4。如何针对服务器端脚本进行身份验证,然后允许传递流而不让 PHP 脚本永远运行,这会大大增加我们服务器的负载?
这不在 PHP 中,但我认为它可以解决您的问题:
http://lakin.weckers.net/code/web/apache-mod-rewrite-secure-downloads/
这个想法是动态生成一个临时目录,并将 mod_rewrite 指令放入该目录中的 .htaccess 文件中。然后创建指向另一个目录中的文件的符号链接,而无需对其进行任何 Web 访问。
如果您从文件流式传输(而不是实时源),您可以在 PHP 中进行授权并使用安全下载机制重定向到文件。这需要与 Web 服务器进行交互,并且它们各自的行为略有不同。
例如,请查看lighttpd中的mod_secdownload。该文档有一个 PHP 示例。如果可以的话,使用 lighttpd 来提供静态文件将是一个很好的解决方案。