我有一个对 具有读取权限的 Google 存储桶allUsers
,但它未配置为网站(并且没有存档)。即使我发送要求带no-cache
控制:
gsutil cp test gs://mybucket
# test has default meta Cache-Control: public, max-age=3600
wget -S --no-cache http://storage.googleapis.com/mybucket/test
# OK saved as test
gsutil rm gs://mybucket/test
wget -S --no-cache http://storage.googleapis.com/mybucket/test
# Saved as test.1, why?
wget --no-cache
我已经在对象删除后运行了几次。它有时会返回缓存test
文件,有时会正确返回 HTTP 404。我已经从配置好的 Google Compute Engine Ubuntu 服务器运行了命令no cache
。我从 Google Cloud 之外的几台机器上得到了相同的结果。
在我看来,服务器必须返回 HTTP 404总是。Google Cloud 基础设施是否存在 Bug?
注意:当我设置对象元数据时,Cache-Control:no-cache
它会按预期工作。但我认为服务器不应该返回缓存的内容,wget --no-cache
即使它有默认元数据Cache-Control:no-cache
答案1
你是对的。Google Cloud Storage 目前会忽略匿名客户端跳过缓存的请求。
您可以通过在对象上明确设置不同的缓存控制策略、请求对象的特定生成或发出授权请求来解决此问题。