【问题标题】:Google Cloud Storage - Public object url e super slow updating谷歌云存储 - 公共对象 url e 超慢更新
【发布时间】:2020-07-14 14:36:49
【问题描述】:

我有一个对 allUsers 具有读取权限的存储桶,它工作正常,但公共 url 链接 https://storage.googleapis.com/example_bucket/example.png 需要很长时间才能更新:如果我将存储中的图像更改为具有相同名称的不同图像,存储桶视图会显示正确的图像以及非公开图像 url https://storage.cloud.google.com/example_bucket/example.png 但是公开 url 显示旧图像并且需要很长时间才能更新。有人可以解释这是正常的还是我做错了什么?

【问题讨论】:

  • 您是否碰巧找到了解决方案?如果提供的任何答案有用或解决方案,请点赞或接受。

标签: google-app-engine google-cloud-storage


【解决方案1】:

您可以在上传对象时设置cache-control

当使用gsutil

  1. 上传中

gsutil -D -h Cache-Control:"Cache-Control:private, max-age=0, no-transform" cp file gs://BUCKET/file

  1. 编辑:gsutil set meta

gsutil setmeta -h Cache-Control:"Cache-Control:private, max-age=0, no-transform" gs://BUCKET/file

或者通过控制台:

目前无法为存储桶设置默认的cache-control

您可能有兴趣查看此Viewing / Editing Metadata

【讨论】:

    【解决方案2】:

    默认情况下,对 allUsers 具有 READ 权限的对象使用cache-control: public, max-age=3600 提供服务。有了这个缓存控制,对象的更新在一个小时内都无法反映在缓存中。

    【讨论】:

    • 如何修改bucket中所有现在和未来对象的缓存控制值?
    • 您可以使用 ```gsutil setmeta` 更新现有对象的缓存控制标头 - 请参阅cloud.google.com/storage/docs/gsutil/commands/setmeta 要更新所有未来的对象,您需要在上传时设置缓存控制标头。请注意,如果对象不是公开可读的,则缓存控制处于关闭状态。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-06
    • 2012-10-15
    • 2015-03-28
    • 2021-07-19
    • 2018-08-11
    相关资源
    最近更新 更多