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 s3 如何在AWS S3或CloudFront中启用保持活动连接?_Amazon S3_Amazon Cloudfront_Keep Alive - Fatal编程技术网

Amazon s3 如何在AWS S3或CloudFront中启用保持活动连接?

Amazon s3 如何在AWS S3或CloudFront中启用保持活动连接?,amazon-s3,amazon-cloudfront,keep-alive,Amazon S3,Amazon Cloudfront,Keep Alive,如何在AWS S3或CloudFront中启用保持活动连接?我将图片上传到S3,发现URL没有保持活动的连接。即使我将缓存控制头添加到每个图像文件中,客户端应用程序也无法缓存它们。来自Keep Alive的标记wiki: HTTP的一个特性,其中相同的连接用于多个应用程序 请求,加快下载具有多个 资源 我不知道这与缓存行为有什么关系。我经常看到关于长轮询的Keep-Alive头的提及,在S3上启用长轮询没有任何意义 我认为您错误地将keep alive标题与浏览器缓存静态内容的功能链接在一起。缓

如何在AWS S3或CloudFront中启用保持活动连接?我将图片上传到S3,发现URL没有保持活动的连接。即使我将缓存控制头添加到每个图像文件中,客户端应用程序也无法缓存它们。

来自Keep Alive的标记wiki:

HTTP的一个特性,其中相同的连接用于多个应用程序 请求,加快下载具有多个 资源

我不知道这与缓存行为有什么关系。我经常看到关于长轮询的Keep-Alive头的提及,在S3上启用长轮询没有任何意义

我认为您错误地将keep alive标题与浏览器缓存静态内容的功能链接在一起。缓存控制头应该是在浏览器中缓存静态内容所需的全部内容


您是否正在验证来自CloudFront的响应是否包括您在S3对象上设置的缓存控制头?也许您需要在更新标题后使CloudFront缓存无效。

与您的问题相关,我认为问题在于将正确的TTL(>0)设置为您在CloudFront中的来源/行为


此外,AWS Cloudfront(自2017年3月30日起)也适用于自定义源。

保持活动连接是标准连接——它们允许浏览器发送下一个请求,而无需新TCP连接的开销。CloudFront设置一个显式的
连接:保持活动
头;S3根本不添加
Connection:
头,如果未发送
Connection:close
,则启用--keep-alive。OP可能观察到S3不返回报头的事实,并假设这是重要的,而实际上它不是。浏览器缓存问题的根本原因将在别处。没有连接:保持活动标头。然而,这是一个来自BBC网站的url,也存储在S3中。您可以看到它得到了Connection:keep-alive标头。如果url没有Connection:keep-alive标头,则无法缓存该图像。我正在编写一个iOS应用程序,可以访问我S3存储桶上的图像。无法缓存所有图像文件。我花了很多时间来寻找问题。最后,我意识到问题在于连接:保持活动标题。我想知道如何配置S3或CloudFront来修复它。非常感谢。