Google云存储公共对象缓存在服务器端

Google云存储公共对象缓存在服务器端

我有一个对 具有读取权限的 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 目前会忽略匿名客户端跳过缓存的请求。

您可以通过在对象上明确设置不同的缓存控制策略、请求对象的特定生成或发出授权请求来解决此问题。

相关内容