Caching cloudfront删除自定义源的缓存控制标头

Caching cloudfront删除自定义源的缓存控制标头,caching,google-cloud-storage,amazon-cloudfront,Caching,Google Cloud Storage,Amazon Cloudfront,我正在使用谷歌云存储来存储我的静态文件。我想将cloudfront用于静态内容,以便为相同地理位置的用户节省一些网络延迟。但在使用cloudfront时,我在启用浏览器端缓存时遇到问题 当我从服务器请求静态文件时,我得到的http响应如下所述: Alternate-Protocol:80:quic,p=0.5 Cache-Control:public, max-age=7200 Content-Length:57420 Content-Type:image/jpeg Date:Fri, 10 A

我正在使用谷歌云存储来存储我的静态文件。我想将cloudfront用于静态内容,以便为相同地理位置的用户节省一些网络延迟。但在使用cloudfront时,我在启用浏览器端缓存时遇到问题

当我从服务器请求静态文件时,我得到的http响应如下所述:

Alternate-Protocol:80:quic,p=0.5
Cache-Control:public, max-age=7200
Content-Length:57420
Content-Type:image/jpeg
Date:Fri, 10 Apr 2015 08:34:04 GMT
ETag:"51988d8bda68def10ccbf20be57c4e92"
Server:Google Frontend
但当从cloudfront缓存中提取相同内容时,会删除控制头,如下所示:

Alternate-Protocol:80:quic,p=0.5,80:quic,p=0.5
Cache-Control:private
Connection:keep-alive
Content-Length:57420
Content-Type:image/jpeg
Date:Fri, 10 Apr 2015 08:34:15 GMT
ETag:"51988d8bda68def10ccbf20be57c4e92"
Expires:Thu, 01 Jan 1970 00:00:00 GMT
Server:Google Frontend
Via:1.1 c038088d4b94486d7346fd44d03188a0.cloudfront.net (CloudFront)
X-Amz-Cf-Id:EsZLHl0_FzO-naSjD8umC90_nxLXj-LzpHWQYoT6_3hIsKS3TqfOnw==
X-Cache:Miss from cloudfront
我做错了什么

另外,我还没有在google云存储中设置文件的元数据,也没有在运行时在httpservletresponse(java后端)中添加“etag”和“cache-control”头


塔克斯

我认为CloudFront不会从源代码处保留缓存控制,您需要根据我看到您从CloudFront获得了未命中的结果显式地设置它。你能连续两次尝试做同样的请求吗?你会成功吗?若不是,则意味着CloudFront从源站接收缓存控制:private,并且根本不缓存对象。