0

我正在使用 Azure 移动服务来存储 Web 应用程序的图像。我已成功将图像上传到私有容器。我遵循了本介绍性指南 ( http://code.msdn.microsoft.com/windowsapps/Upload-File-to-Windows-c9169190 ) 中的逻辑,即将文件上传到数据库时,SAS 由向表中插入记录时调用的节点脚本。

在移动应用程序中使用这种方法的原因之一是存储密钥不存储在应用程序源本身中。

按照这个想法,我现在正在努力寻找如何下载图像的示例。

也许我应该更新同一张表的读取函数并让它返回一个可用于访问图像的 SAS。

这听起来合理还是它们是更好的方法?非常感谢任何帮助。

4

1 回答 1

0

在我看来,你在正确的轨道上。如果您将图像存储在私有容器中并希望移动设备读取它,那么是的,您将需要生成一个允许读取并将其返回到设备的 SAS。然后,设备代码可以使用该 SAS URL 直接调用 BLOB 存储来检索图像。

这仅适用于您希望容器私有的情况。如果容器是公开的,那么只返回 URL(就像它们在您链接到的文章中一样)应该没问题。

这还取决于您关心图像的私密性。例如,假设您为每个用户创建了一个容器。如果容器上有一个共享访问签名策略,并且过期日期非常遥远,那么从技术上讲,仍然有人需要带有 SAS 的 URL 来查看它,但是您可以创建该 SAS 并像示例一样存储它。然后,当移动应用程序从您的服务读取数据并直接访问 BLOB 时,可以为移动应用程序提供 URL,而无需创建额外的 SAS。在我看来,这个选项只有在图像不会出现很长时间的情况下才真正有效,或者你并不真正关心是否有人从他们可以访问的网络流量中嗅探 URL。

如果您希望它相当安全并且不知道图像会存在多长时间,那么当应用程序从相关表数据中读取时,您应该采用您声明的方法来获取 SAS 以供读取。SAS 可以有一个相当短的有效期,移动设备可以缓存结果。

于 2013-03-04T02:44:05.793 回答