c# - 从客户端应用程序上传的 Azure 媒体服务/blob 存储

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

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

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

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

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

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

最佳答案

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

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

  1. 您的前端应用程序(WPF/Xamarin/Angular)将请求 SAS 来自您的 API 的 URL。
  2. 您的 API 使用 secret Azure 凭据并生成 在 Azure SDK/API 的帮助下使用适当的 SAS URL。例如你的 桌面应用程序可以请求 SAS URL,其创建 blob 权限仅限于 10 分钟。
  3. API 将 SAS URL 返回给应用程序,并且它使用标准 HTTP PUT 或 HTTP GET 上传或下载视频。

有关 SAS 使用的各种模式的详细说明可以在 Microsoft Docs 网站 here 上阅读。 。

关于c# - 从客户端应用程序上传的 Azure 媒体服务/blob 存储,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48558778/

相关文章:

c# - 将包含检查为空属性的 int 数组

c# - 初始化我的类的对象时“无法使用集合初始化程序初始化类型”

c# - 从图表控件中检索 DateTime x 轴值

asp.net - 一个页面上有两个不同的 JQueryUI 主题

c# - TreeView.HideSelection = false - WPF 中的等效项

wpf - WPF中超链接中的上标/下标

c# - 动态更改连接字符串时出错

c# - Windows 安装程序 (C#) 错误代码 2869

c# - 将文件从一个位置复制到另一个位置

c# - 选择 child 后触发 WPF TreeviewItem 父选择事件?