【问题标题】:Accessing private blob images from Azure Storage in app在应用程序中从 Azure 存储访问私有 blob 图像
【发布时间】:2020-02-16 21:00:59
【问题描述】:

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

app有几个图片上传点,需要在app中展示,比如客户头像。

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

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

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

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

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

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

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

谢谢!

【问题讨论】:

  • 我也会选择 #2(或 #4 作为后备选项)。
  • 方式2可能是更好的方式。此外,您还可以尝试更改容器访问级别并将访问级别设置为 blob。更多详情请参考docs.microsoft.com/en-us/azure/storage/blobs/…
  • 谢谢。我不想设置 blob 访问级别,因为虽然个人资料图片很好,但还有一个驾驶执照图像被存储,这显然更敏感。
  • @Nate,就像 Gaurav Mantri(存储专家)所说,#2 应该是更好的。请发布该问题的答案,这将对遇到相同问题的其他人有所帮助。

标签: azure-storage azure-blob-storage


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2011-05-22
    • 2021-01-04
    • 2014-12-06
    • 2023-01-30
    • 2018-04-15
    • 2016-08-23
    • 2020-06-03
    • 2021-12-18
    • 1970-01-01
    相关资源
    最近更新 更多