Http-Headers

Google云儲存公共對象記憶體在伺服器端

  • January 25, 2018

我有一個具有讀取權限的 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 之外的幾台機器上得到了相同的結果。

IMO 伺服器必須始終返回 HTTP 404 。Google Cloud 基礎架構中是否存在錯誤?

注意:當我設置對像元Cache-Control:no-cache時,它按預期工作。但我認為伺服器永遠不應該返回記憶體的內容,wget --no-cache即使它有預設的元Cache-Control:no-cache

你是對的。Google Cloud Storage 目前忽略匿名客戶端請求以跳過記憶體。

您可以通過在對像上顯式設置不同的記憶體控制策略、請求特定生成的對像或發出授權請求來解決此問題。

引用自:https://serverfault.com/questions/848964