azure-storage - 在应用程序中从 Azure 存储访问私有 blob 图像
问题描述
我有一个多租户环境中的 iOS 应用程序可以访问的 ASP.NET Core API。每个租户都分配有一个存储容器。
该应用程序有几个图片上传点,需要在应用程序中显示,例如客户头像。
我的 blob 不是公开的,因此我需要找到在 API 中返回这些图像以供应用使用的最佳方法。
我在这里想到了一些方法。
1. 上传图片时,生成一个不会过期的SAS并存入数据库。我很快意识到这不是正确的方法。如果我重新生成密钥,这些 URL 将变得无效。所以我们可以把这个从名单上划掉。
当租户调用 GET /customers(这些 url 将包含在返回的响应中)时,在容器级别生成一个短暂的 SAS 并将其与标头一起发送。然后,该应用程序可以在要显示图像时附加 SAS。这就是我的倾向。
让我的 API 下载每个 blob 并在响应中发送 base64。这似乎是沉重的和不必要的。
公开我自己的 API 端点,以便为特定的 blob/容器按需生成 SaS,并让应用程序首先调用它。
我在这里没有考虑过另一种希望更好的方法吗?我认为#2可能是要走的路。
谢谢!
解决方案
将点击 #2 并在来自 API 的响应标头中包含一个短暂的 SAS,该标头可用于附加到不公开的 URL。
推荐阅读
- composer-php - TYPO3 9.5:仅使用 composer 更新typo3/cms-* 包不起作用
- command-line-interface - 将现有 swagger 导入 IBM API Connect 并将其从 CLI 添加到产品
- wordpress - Facebook Pixel 在 Wordpress 网站上安装后立即发出“PageView”警告
- bash - 在单独的 bash 进程中回显 bash 变量
- java - Tomcat 7 WAR 部署 - “jar 未加载”
- php - 如何使用 pdo prepare 语句计算到期日?
- nginx - 无法向同一服务器中的网站发送 http 请求
- vue.js - 如何在 Vue.js 中的同一元素上使用 :value 和 v-model
- ios - 在 Swift 4 中的视图控制器之间传递数据
- vb.net - 在 adt.Fill(ds) 中的 System.Data.dll 中发生未处理的“System.Data.OleDb.OleDbException”类型异常