谷歌云存储:我如何避免边缘缓存

时间:2018-03-02 09:14:07

标签: php caching google-cloud-platform google-cloud-datastore google-cloud-storage

将pdf srinu.pdf上传到Google云端存储分区(使用PHP),从云下载工作正常,但当我更改pdf内容并再次上传到存储桶时,请下载该文件,以便始终下载来自旧版本pdf,

https://storage.googleapis.com/[bucket name]/srinu.pdf

当我从云下载GCS控制台时工作正常。 似乎GC边缘上的旧pdf缓存。

如何避免边缘缓存(不改变GCS中的缓存控制和一致性)?

1 个答案:

答案 0 :(得分:2)

如果您未设置Google Cache控件,您实际上正在使用

  

NOTE: By default,公共可读对象提供了一个Cache-Control标头,允许这些对象缓存3600秒。

如果需要确保更新立即可见,则应在此类对象上设置"Cache-Control:private, max-age=0, no-transform"的Cache-Control标头。您可以使用以下命令执行此操作:

gsutil setmeta -h "Content-Type:text/html" \
  -h "Cache-Control:private, max-age=0, no-transform" gs://bucket/*.html

因此我认为不能在不更改Google cache-control的情况下禁用缓存,但是请注意,Cache-Control仅适用于具有公共读取ACL的对象,非公共数据不能缓存。

另请注意,因为对象可以缓存在Internet上的不同位置,可以忽略元数据并按照自己的喜好行事,所以无法强制缓存对象全局到期(就像强制浏览器一样)刷新缓存。)

你能更好地解释为什么要避免使用它吗?