gpt4 book ai didi

azure - 将 Azure CDN 与共享访问签名结合使用

转载 作者:行者123 更新时间:2023-12-04 12:06:58 26 4
gpt4 key购买 nike

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

编辑我希望我们的 CDN 充当我们主数据中心的副本,因此我不希望 CDN 对象被删除,除非它们从主数据中心删除。如果我确实创建了一个 SAS 并将其放在 CDN URL 的末尾,那么如果 SAS 上的过期日期已过,但缓存持续时间未过,用户是否能够返回并访问该文件?

这是我的例子:

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

此外,假设我确实将 Blob 的缓存控制 header 设置为与 SAS URL 同时过期,这也在缓存持续时间之后。然后,我让一个用户在 2015 年 4 月 8 日返回相同的 blob,我们将生成一个新的 SAS 并将其提供给用户,该 blob 是否仍位于 CDN 上,或者缓存控制 header 是否会将其从 CDN 中删除?

最佳答案

您可以将 SAS URL 与 CDN 结合使用。您所需要做的就是提供附加到 CDN URL 的正确 SAS 签名。

它看起来像:

此方法的一些注意事项:

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

关于azure - 将 Azure CDN 与共享访问签名结合使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29039300/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com