我正在使用亚马逊的CloudFront来提供我的网络应用程序的静态文件.
有没有办法告诉云端分发它需要刷新它的文件还是指出应该刷新的单个文件?
亚马逊建议您将文件版本如logo_1.gif,logo_2.gif等作为此问题的解决方法,但这似乎是一个非常愚蠢的解决方案.绝对没有别的办法吗?
我最近开始使用Amazon S3向访问者提供图像,因为这会减少服务器负载.现在,出现了一个新问题:今天我查看了我的AWS账单.我注意到我有一个巨大的账单等着我 - 在20天内总共有4TB的AWS数据传输.
显然这是因为大量传出的Amazon S3流量(到Cloudflare然后将其提供给访问者).现在我应该通过设置Cache头来减少所请求文件的数量(因为Cloudflare的Crawler会尊重它).我修改了我的代码:
$s3->putObjectFile($path, $bucket , 'images/'.$id.'.jpg', S3::ACL_PUBLIC_READ);
Run Code Online (Sandbox Code Playgroud)
至
$s3->putObjectFile($path, $bucket , 'images/'.$id.'.jpg', S3::ACL_PUBLIC_READ, array('Cache-Control' => 'public,max-age=31536000'));
Run Code Online (Sandbox Code Playgroud)
不过,它不起作用.Cloudflare不尊重Cache,因为Cache-Control在Header中不显示为"Cache-Control",而是显示为"x-amz-meta-cachecontrol".Cloudflare忽略了这一点.
有人有一个简单的解决方案吗?
TL; DR:我和这个人有或多或少相同的问题:http://support.bucketexplorer.com/topic734.html(那是在2008年)
编辑:我偶然发现了这一点:亚马逊S3没有缓存图像,但不幸的是,该解决方案对我不起作用.
编辑2:事实证明它没有用,因为我使用的是旧版"亚马逊S3类".我更新了,代码现在正常工作.
感谢您的时间.
我有一个S3存储桶,其上面有CloudFront CDN.
这个S3存储桶是"不可变的",这意味着一旦我在那里上传文件,我就永远不会删除它或更新它.所有客户端都可以非常积极地缓存来自S3/CloudFront的文件.
目前,Etags工作得非常好,客户大多数时间都会收到304回复.但是获得304响应仍然需要通过更积极的缓存来避免往返.
所以我想要这样的行为:
CloudFront CDN缓存永远不会失效,因为S3缓存永远不会更改.CloudFront不需要再次向S3询问文件多次.我想我已经使用CloudFront分配设置成功配置了它.
CloudFront应该使用标头提供所有文件Cache-Control: max-age=365000000, immutable(截至2016年,immutable是一个新的,部分支持的值)
我不明白我怎样才能达到预期的效果.我应该在CloudFront或S3级别处理吗?我已经阅读了一些关于为每个S3文件配置适当标头的内容.是不是有一个全局设置来提供我可以使用的自定义http标头的所有文件?
caching cache-control amazon-s3 amazon-web-services amazon-cloudfront
我有一个 amazon cloudfront 发行版,它为我的 CDN 创建了一个“来源”。在我的行为中,我设置了最大 TTL、最小 TTL 和默认 TTL。但是我的响应头不会在重定向的静态文件中返回 Cache-control 头。如何设置缓存控制?我需要这个用于谷歌页面洞察
header cache-control amazon-web-services amazon-cloudfront pagespeed-insights
我有一个包含大约300K对象的Amazon S3存储桶,需要在所有对象上设置Cache-control标头.不幸的是,除了一次一个之外,似乎唯一的方法就是将对象复制到自身并以这种方式设置缓存控制头:
是Amazon S3 CLI复制命令的文档,但是我使用它设置缓存控制标题是不成功的.有没有人有一个适用于此的示例命令.我试图将缓存控制设置为max-age = 1814400
一些背景材料:
我正在创建一个 aws lambda 函数,它下载 s3 文件并根据每次收到的事件对其进行处理。但是我不想每次都从 s3 下载 s3 文件。谁能建议我如何只下载一次 s3 文件并处理传入事件,而不必每次都下载 s3 文件?
目前,即使我将代码从 lambdafunctionhandler 类的构造函数中的 s3 下载,它每次都会下载
如果您有任何代码参考或示例,请使用java。提前致谢