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

Sri*_*uri 1 php caching google-cloud-storage google-cloud-datastore google-cloud-platform

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

https://storage.googleapis.com/[bucket name]/srinu.pdf
Run Code Online (Sandbox Code Playgroud)

当我从云 GCS 控制台下载时工作正常。看来老pdf是放在GC边缘缓存上的。

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

Gal*_*one 5

如果您没有设置 Google Cache 控件,那么您实际上正在使用它

注意:默认情况下,公共可读对象带有 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
Run Code Online (Sandbox Code Playgroud)

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

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

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