Googe Storage ArgumentException при настройке конфигурации CORS

Следуя документам Google, при использовании консоли хранения GoogleCloud:

mysef@myproject:~$ cat cors-json-file.json 
[ 
  {
    "origin": ["*"],
    "method": ["GET"],
    "maxAgeSeconds": 3600
  } 
]

тогда я получаю следующую ошибку:

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
  } 
]

та же ошибка, когда я удаляю "method", "maxAgeSeconds" или добавляю "responseHeader".

3 ответа

Решение

После стольких попыток я закончил с изменением файла json:

$ cat cors-json-file.json 
[{
    "origin": ["*"],
    "method": ["GET"],
    "maxAgeSeconds": 3600
}]

и... это сработало! Обратите внимание, что пример из документации Google - мой первый случай (с [{на 2 строки)

У меня была такая же проблема, и она была вызвана типом используемых цитат. Открыв json-файл в текстовом редакторе и изменив кавычки на стандартные, исправили проблему.

Я получил ту же ошибку, когда попытался установить параметры CORS с запятой в конце ",", как показано ниже:

      [
    {
      "origin": ["http://localhost:8000"],
      "method": ["GET"],
      "responseHeader": ["Content-Type"],
      "maxAgeSeconds": 3600, 
    }                   // ↑ Trailing comma
]                          

Итак, я удалил завершающую запятую «,», как показано ниже, после чего я смог успешно установить настройки CORS без ошибок:

      [
    {
      "origin": ["http://localhost:8000"],
      "method": ["GET"],
      "responseHeader": ["Content-Type"],
      "maxAgeSeconds": 3600 
    }                   // ↑ No trailing comma
]                          
Другие вопросы по тегам