【问题标题】:Apache & Laravel - What's the best way to protect video without losing performance?Apache 和 Laravel - 在不损失性能的情况下保护视频的最佳方法是什么?
【发布时间】:2020-01-09 17:47:07
【问题描述】:

我目前正在将个人资料视频上传到公共文件夹。

这里很酷的是,您可以简单地使用 HTML5 视频标签中的公共 URL 进行流式传输。

我可以进行另一个只有登录用户才能访问的路由调用,但这显然会根据answer 对性能产生很大影响。

如果您将 URL 放在浏览器导航栏中(意思是,未嵌入 HTML5 视频标签中),有没有办法我不允许您访问该文件?

我还可以阻止来自不同域的呼叫吗? (嵌入在另一个网站的 HTML5 视频标签中)

【问题讨论】:

    标签: html laravel video-streaming


    【解决方案1】:

    您可以将上传的文件存储在非公共文件夹中,然后有一个控制器来控制是否允许某人访问它(例如,只有经过身份验证的用户)。如果请求有效,您可以返回streamed response

    this answer 中的性能影响不是由控制器包装请求引起的,而是由控制器重新生成图像而不是简单地在响应中返回图像引起的。

    【讨论】:

    • 感谢您的回答@PtrTon,但如果我正在使用 vue.js,通过不记名令牌识别用户,我该如何流式传输响应?我应该在 HTML5 视频标签中设置什么才能正常工作?
    • 我认为流式响应(带有正确的标题)可以在<video> 标签中播放。渲染 HTML5 视频标签时,使用控制器的路由作为 src 属性。类似<video :src="video.url" controls></video>
    • 正确,但是如何将不记名令牌发送到那里?我需要先对路由进行 axios 调用,取回响应,然后以某种方式将其注入到视频 src 中?
    • 啊,我了解您现在面临的问题。我没有为您提供可靠的解决方案,因为您需要所有请求都通过 axios 并且 <video> 的 src 属性自己处理请求。您可以选择一些替代方案:生成一次性有效的网址,一小时后使视频网址无效,尝试控制 <video> 元素所做的请求或尝试您可以控制的播放器
    猜你喜欢
    • 2015-07-28
    • 1970-01-01
    • 2018-05-19
    • 2020-09-26
    • 2017-12-11
    • 2014-07-05
    • 1970-01-01
    • 2021-04-10
    • 1970-01-01
    相关资源
    最近更新 更多