amazon-web-services - 在 CDN 和 aws s3 对象上设置缓存标头有什么区别?
问题描述
我试图弄清楚如何在不逐个清除的情况下清除一组 url(这是低效且有问题的)。
我还试图弄清楚如何在不清除我们不想清除的内容的情况下做到这一点。
本质上,当我将更新的文件推送到我的 CDN 指向的 s3 存储桶时,我想清除所有已更改的文件——但不清除保持不变的文件。
我试图弄清楚在 CDN 上设置缓存标头与设置缓存标头之间的区别(x-amz-meta-surrogate-key
我认为具体是什么?)。
我能否以某种方式为更改的对象配置元数据(当我将它们推送到 s3 存储桶时),以便清除这些文件而不是其他文件?
(对于它的价值,我正在快速使用 CDN 服务)。
解决方案
我试图弄清楚如何在不逐个清除的情况下清除一组网址
这通常通过Surrogate-Key
在源的响应上设置 a 来完成。您可以在多个不同页面上设置相同的“密钥”,以支持从一个清除请求中同时清除所有这些内容。
例如:您可以在www.example.com/abc
发送Surrogate-Key: red blue
时www.example.com/xyz
发送Surrogate-Key: green yellow red
。
因此,使用 Fastly,您可以发出“按密钥清除”请求,这意味着您可以/abc
使用blue
密钥清除页面,因为它是该页面独有的(尽管在这种情况下您也可以只“按 url 清除”),但您可以清除两者/abc
并/xyz
使用密钥发出“按密钥清除”请求,red
因为该密钥已在两个页面的响应中设置。
至于将它与 AWS S3 耦合,有一个 Fastly 文档页面可能会有所帮助......
您可以使用代理键标记内容,并使用它一次清除特定 URL 组,而无需清除所有内容或单独清除每个 URL。在 Amazon S3 端,您可以使用 x-amz-meta-surrogate-key 标头来标记您认为合适的内容,然后在 Fastly 端设置 Header 配置以将 S3 信息转换为我们查看的标头为了。-- https://docs.fastly.com/en/guides/setting-surrogate-key-headers-for-amazon-s3-origins
其他一些可能对您有所帮助的 Fastly 材料:
推荐阅读
- css - 为不同的响应式媒体查询/设备大小分开 sass 文件?
- android - 手动关闭并重新启动应用程序时,Gluon 无法加载本机插件
- javascript - 为什么我的精灵不画?
- python - 根据 for 循环产生的数字计算总计(运行总计)
- arraylist - Arraylist 中的 Java IndexOutOfBoundsException
- wget - W获取多个目录目录
- mysql - UPDATE 和 SELECT 表连接
- ios - 获取核心数据显示数组中的项目数而不是字符串
- php - Flush 和 ob_flush 在 fastcgi php 中不起作用
- list - 如何简化可变列表中可变列表的分配