2015-03-13 52 views
6

我试图结合Azure将大部分文件存储在应用程序中。我希望将这些文件上传到Azure的私有容器和私人Blob,并将这些上传通过Azure CDN复制到所有其他节点(仍作为私有容器和Blob)。然后,我希望我的应用程序向存储的blob发出请求,并在一段时间内向我提供blob的共享访问签名链接。但是,我希望生成的链接可以为用户提供最近的数据中心。每当需要blob时,我都会生成SAS,但我需要能够使用CDN上的SAS选项。使用Azure甚至可以这样做,还是我只能在一个数据中心中使用SAS?使用共享访问签名的Azure CDN

编辑 我希望我们的CDN充当如果我们的主数据中心的副本,所以我不想除非它们从主数据中心删除永远要删除的CDN对象。如果我创建了SAS并将其放在CDN URL的末尾,如果SAS上的截止日期已过,但不是缓存持续时间,用户是否能够返回并访问该文件?

继承人我的例子:

显然,用户可以访问该网址,直到2015年4月1日,但如果他们回来对2015年4月2日,将他们仍然有机会?

另外,假设我将blob的缓存控制标头设置为与SAS URL同时过期,这也是缓存持续时间之后。然后,我有一个用户在2015年4月8日回来找同一个blob,我们会生成一个新的SAS并将其提供给用户,blob是否仍在CDN上,或者缓存控制头是否将其从CDN中删除?

回答

5

您可以将SAS网址与CDN结合使用。您只需提供附加到CDN URL的正确SAS签名即可。

它看起来像:

这种方法的一些注意事项:

  • 任何人只要有这个网址可以访问该文件,那么你就必须有一种机制来保持这个URL私人。这也意味着如果URL泄漏出来,那么任何人都可以访问该文件,因此您必须确定这是否是可接受的安全级别。
  • CDN将使用包括SAS在内的完整URL来缓存对象,因此缓存对象对于默认为7天的缓存持续时间有效。这意味着您需要确保将blob上的缓存控制标头设置为与SAS URL相同的持续时间,以便缓存的CDN对象将与SAS URL同时过期。
+0

查看我原来的帖子了解更多信息/澄清。 – SchaF 2015-03-31 18:50:37

相关问题