S3存储的图像与If-Modified-Since标头不起作用

时间:2016-08-20 10:28:43

标签: amazon-web-services browser amazon-s3 http-headers browser-cache

是否有任何方法可以通过发送If-Modified-Since标头将图像从S3加载到浏览器(如果已更改)?

默认情况下应该在浏览器和S3上启用它,但测试说每次刷新都会加载图像。

1 个答案:

答案 0 :(得分:3)

Amazon S3已经支持If-Modified-Since标头,以及相关的If-None-Match(使用ETag代替日期)。

因此,仅在更改图片时才加载图片的方法是实际使用If-Modified-SinceIf-None-Match(如果您有Etag)。但是,由于您正在讨论将其加载到浏览器,大多数浏览器已经在执行此操作,除非您已经做了一些功能来禁用浏览器缓存。

有关支持的标题的详细信息,请参阅http://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectGET.html#RESTObjectGET-requests-request-headers

您是否遇到过浏览器仍在从S3加载图片的情况,即使它们尚未被更改?如果是这样,你有更多细节,例如浏览器,版本以及类似症状的Chrome network tab HAR file

默认情况下,它应该只在两侧工作,没有自定义更改。我只是通过将新的png图像文件上传到S3来复制。在一个全新的浏览器窗口中,我打开了开发工具并加载了网络选项卡。我确保禁用缓存'是UNTicked,并保留日志'被勾选(以保持多个F5刷新日志)。

我加载了图像,然后点击F5重新加载两次。结果是:

Network tab screenshot

如您所见,第一次加载的状态为200,其他请求收到304。