我试图合并 Azure 来存储我的应用程序的大部分文件。我想将这些文件上传到 azure 中的私有容器和私有 blob,并通过 Azure CDN 将这些上传复制到所有其他节点(仍然作为私有容器和 blob)。然后,我希望我的应用程序向存储的 blob 发出请求,并在一段时间内向我提供指向该 blob 的共享访问签名链接。但是,我希望为离用户最近的数据中心提供生成的链接。每次需要 blob 时,我都会生成 SAS,但我需要能够在整个 CDN 中使用 SAS 选项。这甚至可以通过 Azure 实现,还是我只能将 SAS 与一个数据中心一起使用?
编辑 我希望我们的 CDN 充当我们主数据中心的副本,所以我不希望 CDN 对象被删除,除非它们从主数据中心中删除。如果我确实创建了一个 SAS 并将其放在 CDN URL 的末尾,如果 SAS 上的到期日期已过,但缓存持续时间未过,用户是否能够返回并访问该文件?
这是我的例子:
- 缓存持续时间:5 天
- Azure 存储 URL:http ://azstorage.blob.core.windows.net/images/img1.jpg
- CDN 端点:http ://az507923.vo.msecnd.net/
- Azure 存储 SAS 参数:?st=2015-03-30T19%3A21%3A09Z&se=2015-04-01T20%3A21%3A09Z&sr=c&sp=r&sig=STTE1p0ujzZr31ZjPaOlNoImCPcjss2GoRsOWDlpJuI%3D
- 最终 CDN 网址:http ://az507923.vo.msecnd.net/images/img1.jpg?st=2015-03-30T19%3A21%3A09Z&se=2015-04-01T20%3A21%3A09Z&sr=c&sp=r&sig=STTE1p0ujzZr31ZjPaOlNoImCPcjss2GoRIOWl% 3D
显然,用户可以在 2015 年 4 月 1 日之前访问此 URL,但如果他们在 2015 年 4 月 2 日回来,他们仍然可以访问吗?
另外,假设我确实将 blob 的缓存控制标头设置为与 SAS URL 同时过期,这也在缓存持续时间之后。然后我让一个用户在 2015 年 4 月 8 日返回相同的 blob,我们将生成一个新的 SAS 并将其提供给用户,该 blob 是否仍位于 CDN 上,或者缓存控制标头是否将其从 CDN 中删除?