使用azure移动服务如何从私有容器下载blob?

时间:2013-03-01 15:04:57

标签: mobile service azure blob

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

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

顺应这个想法,我现在正在努力寻找一个如何下载图像的例子。

也许我应该更新同一个表的读取功能,并返回一个可以用来访问图像的SAS。

听起来合理还是更好? 非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

听起来我觉得你走在正确的轨道上。如果您要将图像存储在私有容器中并希望移动设备将其读回然后是,则需要生成允许读取并将其恢复到设备的SAS。然后,设备代码可以使用该SAS URL直接针对BLOB存储进行调用以检索图像。

仅当您希望容器为私有时才适用。如果容器是公共的,那么只返回URL(就像它们链接到的文章中那样)应该没问题。

这还取决于您对图像的私密程度。例如,假设您为每个用户创建了一个容器。如果容器上有一个共享访问签名策略,其中有一个非常远的过期日期,那么从技术上讲,某人仍然需要使用SAS的URL来查看它,但您可以创建该SAS并将其存储为样本。移动应用程序在从服务中读取数据时可以获得URL,并直接访问BLOB而无需创建其他SAS。在我看来,这个选项只有在图像不会很长时间才真正起作用,或者如果有人从他们可以访问的网络流量中嗅探URL,你真的不在乎。

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