首页 > 解决方案 > 在应用程序中从 Azure 存储访问私有 blob 图像

问题描述

我有一个多租户环境中的 iOS 应用程序可以访问的 ASP.NET Core API。每个租户都分配有一个存储容器。

该应用程序有几个图片上传点,需要在应用程序中显示,例如客户头像。

我的 blob 不是公开的,因此我需要找到在 API 中返回这些图像以供应用使用的最佳方法。

我在这里想到了一些方法。

1. 上传图片时,生成一个不会过期的SAS并存入数据库。我很快意识到这不是正确的方法。如果我重新生成密钥,这些 URL 将变得无效。所以我们可以把这个从名单上划掉。

  1. 当租户调用 GET /customers(这些 url 将包含在返回的响应中)时,在容器级别生成一个短暂的 SAS 并将其与标头一起发送。然后,该应用程序可以在要显示图像时附加 SAS。这就是我的倾向。

  2. 让我的 API 下载每个 blob 并在响应中发送 base64。这似乎是沉重的和不必要的。

  3. 公开我自己的 API 端点,以便为特定的 blob/容器按需生成 SaS,并让应用程序首先调用它。

我在这里没有考虑过另一种希望更好的方法吗?我认为#2可能是要走的路。

谢谢!

标签: azure-storageazure-blob-storage

解决方案


将点击 #2 并在来自 API 的响应标头中包含一个短暂的 SAS,该标头可用于附加到不公开的 URL。


推荐阅读