【发布时间】:2015-04-03 02:41:34
【问题描述】:
如果我使用具有 S3 源的 cloudfront 来服务具有两个文件的网站。让我们说 index.html 和 app.js。现在,如果我对 html 文件和 app.js 进行更改,例如删除一些函数并添加一些新函数。现在 cloudfront 的工作方式是文件有一个我认为是 24 小时的到期日期。因此,一旦 24 小时结束,那么对 cloudfront 的请求将检查 s3 存储桶以查看文件是否已更改。如果两个文件同时过期,这很好,但如果 html 文件在 javascript 文件后 4 小时过期怎么办?
这意味着旧的 HTML 文件可能正在调用旧 javascript 文件中存在的函数。然而,新的 Javascript 文件正在被提供,它不再具有此功能。这将导致错误。
为了解决这个问题,您可以为这两个文件发送一个失效请求,当这完成时,新的内容将被提供。无效请求可能需要一些时间,我个人认为完成请求需要 10-15 分钟。因此,如果我将编辑后的文件(html、js)推送到我的 S3 源并发送无效请求,则需要 15 分钟才能完成。然后就在我发送无效请求之后,js 文件过期并且新的 JS 文件与旧的 HTML 文件一起被拉出......我的网站可能会在大约 15 分钟内抛出错误?
如果我从我的服务器提供我的 html 并且只是从 cloudfront/S3 中提取 js 会怎样?我是否必须将本地服务器上的 html 更改与云端成功的失效请求完全同步?
【问题讨论】:
标签: amazon-web-services amazon-s3 amazon-cloudfront