首页 文章

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

提问于
浏览
0

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

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

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

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

1 回答

  • 2

    如果您未设置Google缓存控件 you are actually using it

    注意:默认情况下,公共可读对象使用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上的不同位置,可以忽略元数据并按照自己的喜好行事,所以无法强制缓存对象全局到期(就像强制浏览器刷新其对象一样)高速缓存) .

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

相关问题