我将AWS Simple Storage Service(S3)存储区设置为AWS CloudFront CDN分发的源。
当S3存储桶或CloudFront发行版中从未存在的全新图像(小,<50k)上传到S3存储桶时,它们几乎可以在S3资源请求时立即可用,但需要10分钟才能成为可从CloudFront资源获取。
一旦图像在CloudFront中可用,它们就会快速加载。问题是图像似乎需要很长时间才能在CloudFront中使用。
我将Min,Max和Default的TTL降低到0,没有明显的变化。
这是预期的吗?
我有什么办法可以加快速度吗?
谢谢
答案 0 :(得分:0)
是的,这是预料之中的 - 不幸的是,你不能做很多事情。
如@igor所述,您可以对对象进行无效。我不能确定如果这实际上会加快速度,但你可以试试。您可以通过设置从S3到Lambda的事件并调用CloudFront使该对象无效来实现此目的,或者您可以将其与您正在进行的上传调用并排调用 - 与Lambda解耦更好但无论如何。
进入S3的所有文件显然必须通过S3可用,当您打开CloudFront图层时,不要限制存储桶访问。您也可以通过启用Accelerated Transfer
来更快地启用S3 GET请求(如果您想要更快的直接转发到S3&#39;请求,如果您使用CloudFront则没有任何影响)
我建议做一个故障转移电话,说:
function getFromS3()
serveFileToUser()
function getFromCloudFrontEndpoint()
if !exists
getFromS3()
else
serveFileToUser()
答案 1 :(得分:0)