If-Modified-Since header 的 S3 存储图像不起作用
S3 stored image with If-Modified-Since header not working
是否有任何方法可以通过发送 If-Modified-Since header 将图像从 S3 加载到浏览器(仅当图像发生更改时)?
它应该在浏览器和 S3 上默认启用,但测试表明图像在每次刷新时加载。
Amazon S3 已经支持 If-Modified-Since
header,以及相关的 If-None-Match
(它使用 ETag 而不是日期)。
因此,只有在图像发生变化时才加载图像的方法是实际使用 If-Modified-Since
,或者如果您有 Etag,则使用 If-None-Match
。但是,由于您正在谈论将其加载到浏览器,大多数浏览器将已经这样做,除非您做了一些时髦的事情来禁用浏览器缓存。
有关支持的 header 的详细信息,请参阅 http://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectGET.html#RESTObjectGET-requests-request-headers。
您是否遇到浏览器仍在从 S3 加载图像(即使图像未更改)的情况?如果是这样,您是否有更多详细信息,例如浏览器、版本和类似 Chrome network tab HAR file 说明症状的内容?
默认情况下,它应该只在两侧工作,没有自定义更改。我只是通过将新的 png 图像文件上传到 S3 来进行复制。在一个全新的浏览器 window 中,我打开了开发工具并加载了网络选项卡。我确保 'disable caching' 未勾选,'preserve log' 被勾选(以在多次 F5 刷新时保持日志)。
我加载了图像,然后按 F5 重新加载两次。结果是:
如您所见,第一个加载状态为 200,其他请求收到 304。
是否有任何方法可以通过发送 If-Modified-Since header 将图像从 S3 加载到浏览器(仅当图像发生更改时)?
它应该在浏览器和 S3 上默认启用,但测试表明图像在每次刷新时加载。
Amazon S3 已经支持 If-Modified-Since
header,以及相关的 If-None-Match
(它使用 ETag 而不是日期)。
因此,只有在图像发生变化时才加载图像的方法是实际使用 If-Modified-Since
,或者如果您有 Etag,则使用 If-None-Match
。但是,由于您正在谈论将其加载到浏览器,大多数浏览器将已经这样做,除非您做了一些时髦的事情来禁用浏览器缓存。
有关支持的 header 的详细信息,请参阅 http://docs.aws.amazon.com/AmazonS3/latest/API/RESTObjectGET.html#RESTObjectGET-requests-request-headers。
您是否遇到浏览器仍在从 S3 加载图像(即使图像未更改)的情况?如果是这样,您是否有更多详细信息,例如浏览器、版本和类似 Chrome network tab HAR file 说明症状的内容?
默认情况下,它应该只在两侧工作,没有自定义更改。我只是通过将新的 png 图像文件上传到 S3 来进行复制。在一个全新的浏览器 window 中,我打开了开发工具并加载了网络选项卡。我确保 'disable caching' 未勾选,'preserve log' 被勾选(以在多次 F5 刷新时保持日志)。
我加载了图像,然后按 F5 重新加载两次。结果是:
如您所见,第一个加载状态为 200,其他请求收到 304。