我无法理解这个话题。 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 。
- 您的前端应用程序(WPF/Xamarin/Angular)将请求 SAS 来自您的 API 的 URL。
- 您的 API 使用 secret Azure 凭据并生成 在 Azure SDK/API 的帮助下使用适当的 SAS URL。例如你的 桌面应用程序可以请求 SAS URL,其创建 blob 权限仅限于 10 分钟。
- API 将 SAS URL 返回给应用程序,并且它使用标准 HTTP PUT 或 HTTP GET 上传或下载视频。
有关 SAS 使用的各种模式的详细说明可以在 Microsoft Docs 网站 here 上阅读。 。
关于c# - 从客户端应用程序上传的 Azure 媒体服务/blob 存储,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48558778/