终止支持通知:2025 年 11 月 13 日, AWS 将停止对 AWS Element MediaStore al 的支持。2025 年 11 月 13 日之后,您将无法再访问 MediaStore 控制台或 MediaStore 资源。如需更多信息,请访问此博客文章
本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
AWS Elemental MediaStore 与 HTTP 缓存的互动
AWS Elemental MediaStore 存储对象的方式使得像 Amazon CloudFront 这样的内容分发网络 (CDN) 可以正确高效地缓存对象。当最终用户或 CDN 从 MediaStore 中检索对象时,服务将返回影响对象缓存行为的 HTTP 标头。(HTTP 1.1 缓存标准行为可在 RFC2616 第 13 节
-
ETag
(不可自定义) – 实体标签标头是 MediaStore 发送的响应的唯一标识符。符合标准的 CDN 和 Web 浏览器使用此标签作为缓存对象的密钥。上传对象时,MediaStore 会自动为其生成一个ETag
。您可以查看对象的详细信息以确定其 ETag 值。 -
Last-Modified
(不可自定义)– 此标题的值表示修改对象的日期和时间。上传对象时,MediaStore 会自动生成该数值。 -
Cache-Control
(可自定义) – 此标头的值控制 CDN 应在对象缓存多久后检查该对象是否经过修改。使用 CLI 或 API 将对象上传到 MediaStore 容器时,可以将此标头设置为任何值。HTTP/1.1 文档中介绍了完整的有效值集。如果您在上传对象时未设置此值,则 MediaStore 在检索对象时不会返回此标头。 Cache-Control 标头的常见用例是指定缓存对象的持续时间。例如,假设您有一个经常被编码器覆盖的视频清单文件。您可以将
max-age
设置为 10 以指示对象应仅缓存 10 秒。或者假设您存储了一个永远不会被覆盖的视频段。您可以将此对象的max-age
设置为 31536000,以缓存大约 1 年。
有条件请求
向 MediaStore 发出的有条件请求
MediaStore 以相同的方式响应有条件请求(使用 If-Modified-Since
和 If-None-Match
等请求标头,如 RFC7232GetObject
请求时,即使客户端已经拥有对象,服务也始终返回该对象。
对 CDN 的有条件请求
代表 MediaStore 提供内容的 CDN 可以通过返回 304 Not Modified
处理有条件请求,如 RFC7232 第 4.1 节
CDN(以及符合 HTTP/1.1 的其他缓存)基于源服务器转发的 ETag
和 Cache-Control
标头做出这些决策。要控制 CDN 查询 MediaStore 源服务器以获取对重复检索对象的更新的频率,请在将这些对象上传到 MediaStore 时设置其 Cache-Control
标头。