Cloud Storage CORS问题:已配置桶策略仍无法访问内部图片
解决Google Cloud Storage CORS拦截问题
问题根源
你的CORS配置里只允许了https://(domain).com这个源,但实际发起请求的是https://www.(domain).com——这两个属于不同域名,CORS策略会判定为不匹配,因此不会返回Access-Control-Allow-Origin响应头,导致请求被拦截。
解决步骤
修改CORS配置文件
打开cors-json-file.json,把带www的域名添加到origin数组中,修改后内容如下:[ { "maxAgeSeconds": 3600, "method": ["GET", "POST"], "origin": ["https://(domain).com", "https://www.(domain).com"], "responseHeader": ["Content-Type"] } ]重新上传配置
执行命令更新存储桶的CORS设置:gsutil cors set cors-json-file.json gs://(repo)验证配置生效
再次查看存储桶的CORS配置,确认两个域名都已成功添加:gsutil cors get gs://(bucket)清除浏览器缓存
浏览器可能缓存了旧的响应头,按Ctrl+Shift+R(Windows)或Cmd+Shift+R(Mac)强制刷新页面后,再测试功能。
额外说明
你之前的理解有误:gsutil cors set命令是对整个存储桶生效的,桶内所有文件都会遵循这个CORS规则,并非只作用于桶本身。如果后续有其他子域名需要访问存储桶,直接把对应域名添加到origin数组即可。
内容的提问来源于stack exchange,提问作者Roddy P. Carbonell
相关产品推荐
相关产品推荐

