我正在制作一个小型网络应用程序,它接收来自客户端的请求并向它们响应视频流。
我有一个 api,例如:
[GET]api/video?id={videoId}
哪些客户端将在 header 中传递他们的授权 token 以接收来自服务的视频流(我不希望无权访问服务上 protected 视频的人 - 就像YouTube 中的私有(private)视频)。
我已阅读并实现了本教程:http://www.strathweb.com/2013/01/asynchronously-streaming-video-with-asp-net-web-api/
但是,我想知道我的实现是否是最好的方法?因为我的系统现在很小,但是将来我可以做得更大,服务越来越多的客户。
有人可以帮我吗? 谢谢。
最佳答案
如果您尝试提供“私有(private)”视频,我相信您可以将架构分为两种基本类型:
- 对文件的真正 protected 访问 - 对文件(视频)没有真正的 http 物理访问,它存储在数据库中,或者只有 IIS 应用程序池用户有权访问的位置(光盘/内部网络/等等..)
- 对文件的假 protected 访问 - 其中存在允许访问文件的真实 http 路径,但该路径是如此“奇怪”和随机......以至于有可能发现它是如此之低,以至于用户根本不会花时间去尝试寻找“其他东西”......但是当然,通过暴力或其他东西......在X时间之后,可能会有东西“弹出窗口”。
您还指出了“从小处开始”,然后变得更大的事实......这基本上是一个高可扩展性设计问题......这一切都取决于很多事情......(从垂直或水平开始扩展)...缓存、CDN、复制等...
其他因素:可用资源(开发人员)、资金、“机器”(计算机/服务器)、带宽/速度等...当前用户数量以及对 future 使用的预测...等... ……我只想说,有时现在的解决方案并不是 future 的解决方案,但它是让你开始并赚钱的解决方案......并且有了“时间”,你可以用不同的“方法让它变得更好”那时您可以使用的资源”。
话虽这么说:您指出的文章Asynchronously Streaming video with ASP.NET Web API
是一个很好的起点,并且它会起作用,但如果您只想快速实现,只需首先使用“FAKE PRIVATE”逻辑......在那里你真的不需要担心“异步流”代码,因为浏览器播放器会为你做这件事。
关于asp.net - 带有私有(private)视频 C# 的 Web API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40101275/