使用 CloudFront 分配更新现有内容
可通过两种方式更新 CloudFront 将为您分配的现有内容:
使用相同的名称更新文件
在文件名中使用版本标识符进行更新
建议您在文件名或文件夹名称中使用版本标识符,以帮助您更好地控制对 CloudFront 提供的内容的管理。
使用版本控制的文件名更新现有文件
当您更新 CloudFront 分配中的现有文件时,我们建议您在文件名或目录名称中包括某种版本的标识符,以便更好地控制自己的内容。此标识符可能是日期时间戳、序列号、或区别同一对象的两种版本的其他方法。
例如,取代命名图像文件 image.jpg,您可称之为 image_1.jpg。当您想开始提供新版本的文件时,您需要将新文件命名为 image_2.jpg,并且更新 Web 应用程序或网站中的链接以指向 image_2.jpg。此外,您可将所有的图形放在 image_v1 目录中,且当您想开始提供一个或多个图像的新版本时,您会创建新的 image_v2.jpg 目录,并且您会更新指向该目录的链接。凭借版本控制,您不必在 CloudFront 开始提供对象新版本之前等待期过期,并且您不必为对象的失效支付费用。
即使您对文件进行版本控制,我们仍建议您设置到期日期。有关更多信息,请参阅 管理内容保留在缓存中的时间长度(过期)。
指定版本控制的文件名或目录名与 Amazon S3 对象版本控制无关。
使用相同的文件名更新现有内容
虽然您可更新 CloudFront 分配中的现有文件并使用相同的文件名,但我们建议您不要这样做。CloudFront 仅当文件被请求时(而不是当您在源中放置新的文件或更新后的文件时),才将文件分配到边缘站点。如果您使用具有相同名称的较新版本更新源中的现有文件,边缘站点不会从源中获取新版本,除非发生以下两种情况:
-
缓存中文件的旧版本过期。有关更多信息,请参阅 管理内容保留在缓存中的时间长度(过期)。
-
在此边缘站点有用户请求文件。
如果您在替换文件时使用相同的名称,则无法控制 CloudFront 开始提供新文件的时间。默认情况下,CloudFront 在边缘站点将文件缓存 24 小时。(有关更多信息,请参阅 管理内容保留在缓存中的时间长度(过期)。) 例如,如果您在整个网站上替换所有文件:
-
不太受欢迎页面的文件不会出现在任何边缘站点。在下次请求时将开始提供这些文件的新版本。
-
有些页面的文件可能在一些边缘站点中而不在其他边缘站点中,因此,最终用户根据提供对象的边缘站点将会看到不同的版本。
-
不会长达 24 小时地提供最热门网页文件的新版本,因为 CloudFront 可能就在您用新版本替换文件之前就已经从这些页面获取了文件。