bucket.cors
является отображением последовательности каждой политики CORS .
Поскольку вы не делились информацией о том, как именно обновляете свои записи CORS, я предполагаю, что вы передаетесловарь нескольких пар ключ-значение для добавления.Это происходит автоматически, поскольку не соответствует ожидаемой схеме для записей политики.
Вместо этого напишите
import os
os.environ.update(
{'GOOGLE_APPLICATION_CREDENTIALS': '<path-to-your-key-file>'}
)
import google.cloud.storage
storage_client = google.cloud.storage.Client()
bucket_name = '<your-bucket-name>'
bucket = storage_client.get_bucket(bucket_name)
policies = bucket.cors
policies.extend([
{'origin': ['http://hello-world.example']},
{'maxAgeSeconds': 3600}
])
bucket.cors = policies
bucket.update()
print(bucket.cors)
Обратите внимание, что источник - это список источников для получения заголовков ответа CORS, как описано в Хранение веб-документа JSON API .Другие политики также должны передаваться с правильным типом значения.
Вы также можете добавить каждую политику по отдельности следующим образом:
...
policies.append(
{'origin': ['http://hello-world.example']},
)
policies.append(
{'maxAgeSeconds': 3600}
)