假設我已經使用下面的命令複製一個對象到谷歌雲存儲桶:是「雲中」gsutil cp的一個原子操作嗎?
gsutil -h "Cache-Control:public,max-age=3600" cp -a public-read a.html gs://some-bucket/
我現在想「在雲中」複製該文件,同時保持公共ACL,並同時更新緩存控制標題:
gsutil -h "Cache-Control:no-store" cp -p gs://some-bucket/a.html gs://some-bucket/b.html
此操作是否爲原子?即我可以肯定,對象gs://some-bucket/b.html
將首先與修改後的Cache-Control:no-store
標題一起提供?
我的問題的原因是:我使用Google Cloud Storage存儲桶作爲CDN後端。雖然我希望根據Cache-Control
標頭中提供的max-age
緩存CDN中的大部分對象,但我想確保一些特定文件(實際上是可緩存版本的副本)是從不緩存由CDN提供。因此,至關重要的是,這些對象在複製時不會以Cache-Control:public,max-age=XXX
出現,而會立即以Cache-Control:no-store
標題出現,以消除來自CDN的請求在某個時間點讀取複製對象的可能性,其中max-age
會仍然存在,因此緩存應該永遠不會被緩存的對象。