从客户端应用程序上载Azure媒体服务/ blob存储

时间:2018-02-01 08:59:12

标签: c# asp.net wpf azure azure-media-services

我无法理解这个话题。 documentation很好,但我缺少的是一个真实场景,我可以使用blob存储或azure媒体服务从客户端应用程序上传视频。

我们目前有一个制作视频的桌面应用程序(C#,WPF)。 WPF应用程序已与ASP.NET Web API进行通信和身份验证。 我想到的是以某种方式在Web API中实现给定文档,然后以某种方式让用户通过我们的API上传它。然后,通过我们的API将其流式传输到App(Xamarin)或网站(Angular frontend)。

所以我的问题是,如何通过ASP.NET API将视频从WPF应用程序上传到Azure媒体服务或blob存储。

根本问题是:最佳策略是什么?最好的方法?是否建议上传或Azure媒体服务使用blob存储?对于流媒体(下载)?

询问的原因是我当然不希望将凭据存储在客户端应用程序中。

1 个答案:

答案 0 :(得分:4)

假设典型视频的尺寸非常大,您不希望通过自己的API代理上传。解决方案是使用共享访问签名(SAS)URL来处理视频的上传或下载。

简而言之,SAS URL涉及在特定访问范围(例如只读或只写)的有限时间内为特定blob(或其他资源)创建访问令牌。

  1. 您的前端应用程序(WPF / Xamarin / Angular)将请求SAS 来自API的网址。
  2. 您的API使用秘密Azure凭据并生成 借助Azure SDK / API提供适当的SAS URL。对于例如您的 桌面应用可以请求创建blob权限的SAS URL 10分钟。
  3. API将SAS URL返回给应用程序,它使用标准HTTP PUT或HTTP GET上传或下载视频。
  4. 可以在Microsoft Docs网站here上阅读有关SAS使用的各种模式的详细说明。