最近,自己迷上了 SRS 这个国人做的流媒体服务器软件,直播的推流功能已经搞定,现在有一个问题,那就是在直播的时候,用 ffmpeg 把视频也录制了,同时放在是 static 的静态文件夹里,以方便大家能够在直播之后观看到相关视频。
关于视频播放的技术,我使用的是简单的 html5 内加载视频的方法,那么问题来了,如何防盗链?我的思路是在 flask 的 static 静态文件夹上想办法??
有没有其它的思路呢?
如果没有?在 static 静态文件夹上动手的方法有吗?
最近,自己迷上了 SRS 这个国人做的流媒体服务器软件,直播的推流功能已经搞定,现在有一个问题,那就是在直播的时候,用 ffmpeg 把视频也录制了,同时放在是 static 的静态文件夹里,以方便大家能够在直播之后观看到相关视频。
关于视频播放的技术,我使用的是简单的 html5 内加载视频的方法,那么问题来了,如何防盗链?我的思路是在 flask 的 static 静态文件夹上想办法??
有没有其它的思路呢?
如果没有?在 static 静态文件夹上动手的方法有吗?
建议直接用CDN,自带防盗链功能。你自己要实现的话比较复杂。简单粗暴的就是加上referer头判断,这个在apache/nginx这个级别就可以做,但是http header可以被伪造,因此如果你期望彻底防止爬虫或者盗链的话,这种方式就不那么可靠了。
建议你把视频文件放到云存储上,比如阿里云的OSS或者七牛的存储,他们已经有现成的防盗链方案了,直接用他们的方案就行了。
印象中(很久没用flask,可能记错了),对static文件夹的访问其实也是走视图函数的(内置的,在启动时自动加入到endpoint),你可以翻翻文档看怎么改访问静态文件的的视图函数
4 回答4.4k 阅读✓ 已解决
4 回答3.8k 阅读✓ 已解决
3 回答1.4k 阅读✓ 已解决
1 回答3k 阅读✓ 已解决
3 回答2.1k 阅读✓ 已解决
1 回答4.5k 阅读✓ 已解决
2 回答2.5k 阅读✓ 已解决
让
static
也走视图, 然后根据referer
跟踪来源就好办了. 图片的是这样处理的, 如果发现是盗链会返回假图, 视频应该可以类似, 思路大致是: