【问题标题】:Google Cloud Storage - cannot overwrite files谷歌云存储 - 无法覆盖文件
【发布时间】:2021-02-11 09:11:49
【问题描述】:

我正在尝试使用 Google Cloud Storage (GCS) 为网站提供静态内容(例如 css、js 等) 所以我上传了style.css,它很好用——然后我对style.css做一个小修改,再次上传——GCS仍然提供原始版本...

我尝试删除文件。该链接仍然存在,并且仍然提供原始版本。 我又上传了。仍在提供原始版本....

Google Cloud Storage documentation 表示对象是不可变的,但您可以替换对象:

但是,可以替换存储在 Cloud Storage 中的对象,并且这样做是原子的:直到新的上传完成,旧版本的对象被提供给读者,上传完成后的新版本的对象提供给读者。因此,单个替换操作只是标志着一个不可变对象生命周期的结束和一个新不可变对象生命周期的开始。

但这显然行不通。 我正在通过 UI(而不是 CLI)上传文件。

帮助!我即将获得一个 AWS S3 将静态内容存储在那里,违背了使用 GCP 的目的!!!

MPX

【问题讨论】:

  • 可以缓存吗?你等新版本多久了?您可以在这里找到一些提示:cloud.google.com/storage/docs/static-website#tip-cache
  • 您是否对文件设置了缓存控制?您可以明确设置它
  • 谢谢你们 - 它有效 - 把它作为答案,我会接受
  • 一件事:我设置了元数据,它“取消缓存”。但是当我通过 UI 覆盖文件时,元数据消失了,所以我必须再次添加它......这可以使用 CLI rsync 解决吗?

标签: google-cloud-storage google-cloud-storage-r


【解决方案1】:

当您更改为新版本时,您必须记住有Cache-Control metadata。浏览器将显示旧版本,直到值中设置的时间过去。

请务必记住 cache-control 的默认值为 3600 秒。所以如果不设置新版本的文件,浏览器会延迟显示。

请查看documentation 获取缓存控制元数据。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-10
    • 1970-01-01
    • 2016-10-12
    相关资源
    最近更新 更多