将Azure CDN与共享访问签名一起使用

Sch*_*haF 7 shared signature azure azure-storage-blobs azure-cdn

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

编辑 我希望我们的CDN好像它是我们主数据中心的副本,所以我不希望CDN对象被删除,除非它们从主数据中心删除.如果我确实创建了一个SAS并将其丢弃在CDN URL的末尾,如果SAS上的过期日期已经过去,而不是缓存持续时间,那么用户是否能够返回并访问该文件?

继承我的榜样:

显然,用户可以在2015年4月1日之前访问此URL,但如果他们在2015年4月2日回来,他们仍然可以访问吗?

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

kwi*_*ill 6

您可以将SAS URL与CDN一起使用.您需要做的就是提供附加到CDN URL的正确SAS签名.

它看起来像:

使用这种方法的一些警告:

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