谷歌云存储文件缓存和过期问题



>突然我注意到存储在Google Cloud Storage bucket中的一个配置文件的到期日为2019!(更新:注意到 1 年到期对此并不是什么新鲜事) 多年来一直工作正常,直到我今天注意到这个问题。

它是一个公共文件,并且始终以"无缓存"写入云存储。不知何故,我注意到它的编写方式可能存在错误,因为我看到标题现在显示"缓存控制:缓存控制:无缓存",而不仅仅是"缓存控制:无缓存"。令人惊讶的是,这些年来它一直有效。

curl -I 报告:

Date: Tue, 03 Apr 2018 16:35:56 GMT
Expires: Wed, 03 Apr **2019** 16:35:56 GMT
Last-Modified: Tue, 03 Apr 2018 10:36:19 GMT
Content-Type: application/json
...
Accept-Ranges: bytes
Content-Length: 40032
Server: UploadServer
Cache-Control: Cache-Control:no-cache
Age: 339750

我尝试覆盖此文件,然后删除并再次上传无济于事。有没有解决方案可以使其使用最新内容?(最后一个选项是重命名文件,但是我所有读取此文件的现有应用程序都会出现问题)。

我什至不确定缓存文件是如何突然在 2019 年到期的,即使我们的服务器每天都在更改该文件。

编辑:无论我做什么,最后修改现在似乎都没有改变,即使我使用 GCS 库(我们的服务器用户)或 gsutil 以编程方式编写;

gsutil -h "Cache-Control:no-cache" cp config.json gs://<server>.appspot.com/config/; gsutil acl set public-read gs://<server>.appspot.com/config/config.json

因此,无论我更新或写入文件多少次,日期/上次修改时间戳都不会更改,内容也不会更改。

谢谢!

[1] 中的 gsutil 文档提到使用值"private"来防止缓存公开可读的对象。 使用"缓存控制:私有"时是否仍然看到此行为?

[1] https://cloud.google.com/storage/docs/gsutil/addlhelp/WorkingWithObjectMetadata#cache-control

最新更新