是否有任何方法可以通过发送If-Modified-Since标头将图像从S3加载到浏览器(如果已更改)?
默认情况下应该在浏览器和S3上启用它,但测试说每次刷新都会加载图像。
答案 0 :(得分:3)
Amazon S3已经支持If-Modified-Since
标头,以及相关的If-None-Match
(使用ETag代替日期)。
因此,仅在更改图片时才加载图片的方法是实际使用If-Modified-Since
或If-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重新加载两次。结果是:
如您所见,第一次加载的状态为200,其他请求收到304。