突然间,我注意到存储在Google Cloud Storage存储桶中的一个配置文件有2019个到期日! (更新:注意到1年到期并不是什么新鲜事) 所有这些都运作良好多年,直到我今天注意到这个问题。
它是一个公共文件,并且始终使用“no-cache”写入云存储。不知怎的,我注意到它的写入方式可能有误,因为我看到标题现在显示“Cache-Control:Cache-Control:no-cache”而不仅仅是“Cache-Control:no-cache”。令人惊讶的是这些年来都很有效。
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年到期的,尽管我们的服务器每天都会更改这个文件。
编辑:无论我做什么,Last-Modified现在似乎都没有改变,即使我使用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
所以无论我更新或写入文件多少次,日期/上次修改时间戳都不会改变,也不会改变内容。
谢谢!
答案 0 :(得分:0)
[1]中的gsutil文档提到使用值&#34; private&#34;防止缓存公共可读对象。使用&#34; Cache-Control:private&#34;?
时,您是否仍然会看到此行为[1] https://cloud.google.com/storage/docs/gsutil/addlhelp/WorkingWithObjectMetadata#cache-control