在 CDN 上设置缓存 headers 与在 AWS S3 objects 上设置缓存有什么区别?

What is the difference between setting cache headers on CDN vs on AWS S3 objects?

我正在尝试弄清楚如何清除一组 URL 而不是一个一个地清除(这是低效和错误的)。

我也在尝试弄清楚如何在不清除我们不想清除的内容的情况下执行此操作。

基本上,当我将更新的文件推送到我的 CDN 指向的 S3 存储桶时,我想清除所有已更改的文件——但不清除保持不变的文件。

我想弄清楚在 CDN 上设置缓存 headers 与设置缓存 headers 之间的区别(我认为 x-amz-meta-surrogate-key 具体是什么?)。

我能否以某种方式为已更改的 objects 配置元数据(当我将它们推送到 s3 存储桶时),以便清除这些文件而不是其他文件?

(为了它的价值,我正在使用 Fastly 作为 CDN 服务)。

I'm trying to figure out how to purge a set of urls without purging one by one

这通常是通过在源的响应上设置 Surrogate-Key 来完成的。您可以在多个不同的页面上设置相同的 'key' 以支持从一个清除请求中同时清除所有这些内容。

例如:您可以 www.example.com/abc 发送 Surrogate-Key: red bluewww.example.com/xyz 发送 Surrogate-Key: green yellow red

因此,使用 Fastly,您可以发出 'purge by key' 请求,这意味着您可以使用 blue 键清除 /abc 页面,因为它对于该页面是唯一的(尽管在那如果您也可以 'purge by url') 但您可以通过使用密钥 red 发出 'purge by key' 请求来清除 /abc/xyz,因为该密钥已设置在两个页面的响应上。

就将其耦合到 AWS S3 而言,有一个 Fastly 文档页面可能会有所帮助...

You can mark content with a surrogate key and use it to purge groups of specific URLs at once without purging everything, or purging each URL singularly. On the Amazon S3 side, you can use the x-amz-meta-surrogate-key header to mark your content as you see fit, and then on the Fastly side set up a Header configuration to translate the S3 information into the header we look for. -- https://docs.fastly.com/en/guides/setting-surrogate-key-headers-for-amazon-s3-origins

其他可能对您有帮助的 Fastly material: