将CloudFront文件的TTL设置为1年

我知道我们可以将过期标题设置为Amazon S3,但是如何将其设置为一个云端文件? 我已经读过,我们可以将TTL从24小时设置为1小时,但是我想将其设置为1年。

这是通过Amazon CloudFront对象过期中logging的常规HTTPcaching控制机制(请参阅RFC 2616 )来处理的,具体为:

默认情况下,每个对象24小时后自动失效。 要指定不同的到期时间,请configuration您的起源以为每个对象的Cache-Control max-age指令或Expires标题字段添加一个值:

  • 通过Cache-Control max-age指令,您可以指定在CloudFront从原始服务器再次获取对象之前,希望对象保留在caching中的时间(以秒为单位)。 CloudFront支持的最短到期时间为Web分配为0秒,RTMP分配为3600秒。 最大值在2038年。按以下格式指定值:

    Cache-Control: max-age=seconds

    例如,以下指令告诉CloudFront将关联的对象保留在caching中3600秒(一小时):

    Cache-Control: max-age=3600

    如果希望对象保留在CloudFront边缘caching中的时间与停留在浏览器caching中的持续时间不同,则可以一起使用Cache-Control max-ageCache-Control s-maxage指令。 有关更多信息,请参阅指定CloudFront为Web分配caching对象的最短时间 。

  • Expires标题字段允许您使用RFC 2616“超文本传输​​协议 – HTTP / 1.1第3.3.1节,完整date”中指定的格式指定到期date和时间,例如:

    Sat, 30 Jun 2012 23:59:59 GMT

    […]

我们build议您使用Cache-Control max-age指令而不是Expires头字段来控制对象caching 。 如果您为Cache-Control max-age和Expires指定了值,CloudFront将只使用max-age的值。 [强调我的]

您可能还需要查看指定CloudFrontcachingWeb分发对象的最短时间,以了解最小TTL = 0(默认值)的特性 (请参阅我对CloudFront中什么是TTL 0有用的答案有关此function的更详细的解释)。

你为什么想这样做? 你认为通过这样做,你的文件将被接近边缘一整年没有一个原点拉? 如果是这样,那么根本不会发生对不起,24小时实际上是相当长的一个CDN。 如果您担心自己的文件掉到边缘,只能在全球范围内分发一些虚拟机,并定期获取您的内容(我们称之为“痒痒”),将内容保持在边缘。