Google Cloud Storage:使新文件上传时的缓存无效

Raj*_*ary 5 google-cloud-storage google-cloud-platform

我有一个标记为公共的 Google Cloud Storage (GCS) 存储桶。我使用 v4 签名 URL 将图像上传到此公共存储桶。我可以通过 HTTP 标头看到 GCS 缓存图像长达 1 小时。但是,当我上传相同图像的新版本(具有相同的文件名)时,GCS 不会使缓存失效,并且仍然提供这些图像的旧版本。当这些图像的较新版本上传到 GCS 时,如何确保缓存失效?必须使用 v4 签名 URL。

小智 1

根据我的理解,GCS 不会缓存您的图像,而是设置默认缓存策略,稍后由本地浏览器或互联网缓存使用。

公共 GCS 存储桶的默认策略(称为“内置缓存”)确实是 3600 秒(参考)。

因此,如果策略设置为 1 小时,则如果本地浏览器(或其他具有缓存的功能)将获取此类文件,它将在该时间内提供服务(请查看本文)。

如果我理解正确的话,要求是每当新版本上传到 GCS 时强制缓存上传数据。不幸的是,这似乎是不可能的,因为缓存不在 GCS 中,而是在用户的本地浏览器中或互联网中的某个位置,不受 GCS 控制。

此时,我认为您必须决定是否要将对象设置为根本不缓存,并且会立即下载新的对象版本并产生所有相关后果(应用程序性能、GCS 使用价格等),或者接受某些情况该应用程序将提供旧版本的内容。

要设置cache-controlGCS,请参阅此链接。还要检查性能考虑因素。