我正在开发一个应用程序,其中有一个产品列表,每个产品都有一个存储在 Azure Blob 存储中的关联图像,我需要一种安全有效的方法来在前端提供对这些图像的访问。
最初,我考虑在上传过程中将图像的公共网址保存在数据库中。然而,允许公共访问存储容器并不安全,所以我放弃了这个选项。
我正在考虑的替代方案是使用 SAS url 进行安全访问。但是,由于这些网址有过期时间,因此每次从后端获取产品列表时,我都需要重新生成它们。这需要循环遍历所有产品并动态为每个图像创建一个新的 SAS url。
这引起了一些担忧: • 针对每个请求为多个图像生成SAS URL 是否会显着影响性能,尤其是当产品列表很大时? • 频繁生成SAS URL 是否会导致成本增加,尤其是在有大量请求的情况下? • 管理此流程最有效、最安全的方法是什么?
我的目标是保持图像的私密性,确保高效访问,并避免不必要的成本。
将在每个请求上为多个图像生成 SAS URL 显着影响性能,特别是当产品列表是 大吗?
我没有听说这会是一个问题,因为 SAS 生成是由您的服务器完成的。但是,如果您的服务器受此影响,您应该能够轻松测试这一点。
频繁生成 SAS URL 是否会导致成本增加,尤其是 有大量请求?
存储成本不受此影响。
管理此流程最有效、最安全的方法是什么? 几点:
但是,如果您的情况可行,我也会考虑使用 Microsoft Entra ID 身份验证。此外,一种选择是通过应用程序服务(或您在此处使用的任何内容)传输图像并在那里处理身份验证和授权。