【问题标题】:Google Cloud Storage: invalidate cache on new file uploads谷歌云存储:新文件上传时缓存无效
【发布时间】:2021-05-07 15:07:22
【问题描述】:
我有一个标记为公开的 Google Cloud Storage (GCS) 存储分区。我使用 v4 签名 URL 将图像上传到此公共存储桶。我可以通过 HTTP 标头看到 GCS 将图像缓存长达 1 小时。但是,当我上传相同图像的较新版本(具有相同文件名)时,GCS 不会使缓存无效,并且仍会提供这些图像的旧版本。当这些图像的较新版本上传到 GCS 时,如何确保缓存失效?必须使用 v4 签名的 URL。
【问题讨论】:
标签:
google-cloud-platform
google-cloud-storage
【解决方案1】:
据我了解,GCS 不会缓存您的图像,而是设置默认缓存策略,稍后由本地浏览器或互联网缓存使用。
公共 GCS 存储桶的默认策略(称为“内置缓存”)确实是 3600 秒 (reference)。
因此,如果策略设置为 1h,那么如果本地浏览器(或其他具有缓存的功能)将获取此类文件,它将在该时间提供此类文件(请查看 this 文章)。
如果我理解正确,要求是每当新版本上传到 GCS 时强制缓存上传数据。不幸的是,这似乎是不可能的,因为缓存不在 GCS 中,而是在用户的本地浏览器或互联网的某个地方,不受 GCS 控制。
此时我认为您必须决定是否要将对象设置为根本不缓存,然后将立即下载新的对象版本以及所有相关后果(应用程序性能、GCS 使用价格等)或接受对于某些应用程序将提供旧版本的内容。
要为 GCS 设置 cache-control,请参阅此 link。检查performance consideration。