问题:
我在S3中存储了具有给定文件结构的HLS流的数量:
Video1
???hls3
???hlsv3-master.m3u8
???media-1
???media-2
???media-3
???media-4
???media-5
???hls4
???hlsv4-master.m3u8
???media-1
???media-2
???media-3
???media-4
???media-5
Run Code Online (Sandbox Code Playgroud)
在我的用户API中,我知道哪个用户可以访问哪些视频内容,但我还需要确保视频链接不可共享且只有具有正确权限的用户才能访问.
解决方案:
1)使用signed/temp S3 URL来获取私有S3内容.每当客户想要播放某些特定视频时,它就会向我的API发送请求.如果用户具有正确的权限,则API正在生成签名的URL并将其返回给客户端,客户端将其传递给播放器.
我在这里看到的问题是真实的视频内容存储在media-*目录中的十几个段文件中,我真的不知道如何保护所有这些 - 我是否需要分别对每个段文件URL进行签名?
2)S3内容是私有的.玩家提出的视频流请求通过我的API或单独的反向代理.因此,每当客户决定播放特定视频时,API/反向代理就会收到请求,进行身份验证和授权并传递正确的内容(主播放列表文件和段).
在这种情况下,我仍然需要将S3内容设为私有,并且只能通过我的API/反向代理访问.这里推荐的方式应该是什么? S3通过令牌进行休息认证?
3)使用受保护密钥加密.在这种情况下,所有视频片段都是加密的并且是公开的.密钥也存储在S3中, 但不公开.玩家发出的每个关键请求都经过我的API/反向代理的认证和授权.
这些是我现在想到的3个解决方案.不相信所有这些.我正在寻找一些简单且防弹安全的东西.有什么建议/意见吗?
二手技术:
restful-authentication amazon-s3 video-streaming http-live-streaming