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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了谷歌云存储:我如何避免边缘缓存相关的知识,希望对你有一定的参考价值。

将pdf srinu.pdf上传到Google Cloud Storage Bucket(使用php),从云下载工作正常,但当我更改pdf内容并再次上传到存储桶时,下载文件始终从旧版本pdf下载,

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

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

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

答案

如果您没有设置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上的不同位置,可以忽略元数据并按照自己的喜好行事,所以无法强制缓存对象全局到期(就像强制浏览器刷新其对象一样)高速缓存)。

你能解释一下为什么要避免使用它吗?

以上是关于谷歌云存储:我如何避免边缘缓存的主要内容,如果未能解决你的问题,请参考以下文章

如何从能够搜索的谷歌云存储对象中获取视频流

如何在谷歌云构建中访问 git 标签?

如何将数据附加到谷歌云存储上的文件

如何使用apache气流调度谷歌云bigquery存储过程

谷歌云数据存储。如何服务数据?

如何使用签名的 URL 将文件上传到谷歌云存储桶