设置CORS配置时出现Google Storage ArgumentException

com*_*mte 13 cors google-cloud-storage gsutil

关注Google文档,使用GoogleCloud Storage控制台时:

mysef@myproject:~$ cat cors-json-file.json 
[ 
  {
    "origin": ["*"],
    "method": ["GET"],
    "maxAgeSeconds": 3600
  } 
]
Run Code Online (Sandbox Code Playgroud)

然后我收到以下错误:

myself@myproject:~$ gsutil cors set cors-json-file.json gs://mybucket
Setting CORS on gs://mybucket/...
ArgumentException: JSON CORS data could not be loaded from: [ 
  {
    "origin": ["*"],
    "method": ["GET"],
    "maxAgeSeconds": 3600
  } 
]
Run Code Online (Sandbox Code Playgroud)

删除"method","maxAgeSeconds"或添加"responseHeader"时出现相同的错误.

com*_*mte 6

经过这么多尝试,我最终修改了json文件到:

$ cat cors-json-file.json 
[{
    "origin": ["*"],
    "method": ["GET"],
    "maxAgeSeconds": 3600
}]
Run Code Online (Sandbox Code Playgroud)

并且...它工作了!请注意,Google文档中的示例是我的第一个案例(使用[{2行)


lag*_*ren 5

我遇到了同样的问题,这是由使用的引号类型引起的。通过在纯文本编辑器中打开 json 文件并将引用更改为标准引用解决了问题。

  • @comte,“标准”是指常规的 U+0022 (引号)。某些文本编辑器或 CMS 可能会将标准引号替换为 U+201C 和 U+201D(左双引号和右双引号)。如果文件内容是从某个地方复制的,则可能很难发现。 (2认同)