Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services AWS CloudFront和S3:如何在CloudFront中立即提供新的S3内容?_Amazon Web Services_Amazon S3_Amazon Cloudfront - Fatal编程技术网

Amazon web services AWS CloudFront和S3:如何在CloudFront中立即提供新的S3内容?

Amazon web services AWS CloudFront和S3:如何在CloudFront中立即提供新的S3内容?,amazon-web-services,amazon-s3,amazon-cloudfront,Amazon Web Services,Amazon S3,Amazon Cloudfront,我有一个AWS简单存储服务(S3)存储桶作为AWS CloudFront CDN发行版的源 当S3 bucket或CloudFront发行版中从未出现过的全新图像(很小,是的,这是预期的-不,不幸的是,您对此无能为力 如前所述,您可以对对象进行无效化。我不确定这是否真的会加快它的速度,但您可以尝试。您可以通过设置从S3到Lambda的事件并调用CloudFront使该对象无效来实现这一点,或者您可以将其与正在进行的上载调用并排调用-与Lambda解耦更好,但无论如何 进入S3的所有文件都必须通过

我有一个AWS简单存储服务(S3)存储桶作为AWS CloudFront CDN发行版的源


当S3 bucket或CloudFront发行版中从未出现过的全新图像(很小,是的,这是预期的-不,不幸的是,您对此无能为力

如前所述,您可以对对象进行无效化。我不确定这是否真的会加快它的速度,但您可以尝试。您可以通过设置从S3到Lambda的事件并调用CloudFront使该对象无效来实现这一点,或者您可以将其与正在进行的上载调用并排调用-与Lambda解耦更好,但无论如何

进入S3的所有文件都必须通过S3可用。显然,当您打开CloudFront层时,不要限制bucket访问。您也可以通过启用
加速传输
,使S3 GET请求更快一些(如果您想要更快的“直达S3”请求,则使用CloudFront不会产生任何影响)

我建议您进行故障转移呼叫,该呼叫会显示:

function getFromS3()
    serveFileToUser()

function getFromCloudFrontEndpoint()
    if !exists
        getFromS3()
    else
        serveFileToUser()

使对象无效-?@Igor这怎么适用?我指的“新S3内容”不是“更新的”图片,但在bucket或distribution中从未存在过的全新图片。我以前的理解,以及从文章中收集到的理解,将无效定义为从CloudFront中删除一个资源,以便可以再次从源中提取该资源。我倾向于相信这是的副本。如果您没有错误CacTTL设置为0,这将是你的问题。BOOM!就是这样。很抱歉,我遵循了每个链接堆栈的建议,但这不是其中之一。谢谢!我将尝试类似的方法。这是不正确的。注释表明问题是关于新对象的。没有理由期望正确的confi会有任何延迟始终将CloudFront视为最终的一致性环境。它必须在世界各地运行这些文件不可以。CloudFront不会将内容推送到任何地方。CloudFront是一个直通式缓存。当您通过边缘请求对象时,边缘会从源位置实时拉取内容,除非由于先前的请求(且未过期),内容已经缓存在该边缘--并返回。此外,S3传输加速在这里没有影响。从文档中看不明显,但S3传输加速功能实际上是由S3完成的,用户看不见,它使用地理dns通过CloudFront的基础设施在浏览器和bucket之间路由请求(但没有缓存).CloudFront无法通过其基础架构运行两次请求。