根据Google的说明,我创建了一个cors-json-file.json
[
{
"origin": ["*"],
"responseHeader": ["Content-Type"],
"method": ["GET"],
"maxAgeSeconds": 10
}
]
然后将它应用到我的水桶
gsutil cors set cors-json-file.json gs://mybucket
然后是一个cURL请求获取标题
curl -H "Origin: https://example.com" -I https://mybucket.storage.googleapis.com/myfile.pdf
在回复中,我看到我的标题已设置
access-control-allow-origin: *
但如果相反我将原点设置为特定的
[
{
"origin": ["https://example.com"],
"responseHeader": ["Content-Type"],
"method": ["GET"],
"maxAgeSeconds": 10
}
]
cURL响应中没有 access-control-allow-origin 标头!
(我的跨文本尝试读取文件失败)
我做错了什么?
答案 0 :(得分:2)
这似乎是一个缓存问题 - 几天后,这一切都按预期工作。
来自@sideshowbarker的有用建议是检查您是否使用了完整的URL(包括http://),并且还需要在请求标头中发送以查看响应标头。curl -H "Origin: https://example.com" -I https://mybucket.storage.googleapis.com/myfile.pdf
在回复中,我现在看到我的标题已设置:
access-control-allow-origin: http://example.com
答案 1 :(得分:0)
将其放入json文件中
[
{
"origin": ["<THE URL FROM WHICH YOU ARE REQUESTING THE ASSET>"],
"responseHeader": ["Access-Control-Allow-Origin"],
"method": ["GET", "HEAD", "DELETE", "OPTIONS"],
"maxAgeSeconds": 3600
}
]
然后运行gsutil cors set ./path/to/the/above/json gs://your_bucket_name.appspot.com