假设我已经使用下面的命令复制一个对象到谷歌云存储桶:是“云中”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
会仍然存在,因此缓存应该永远不会被缓存的对象。