Перейти к основному содержимому

Настройка CORS для Firebase Storage

При развертывании веб-приложения на собственном домене домен и ведро Firebase Storage размещаются на разных серверах. В результате браузер будет блокировать запросы к ведру Firebase Storage из вашего веб-приложения, поскольку источники (домены и порты) этих двух серверов различаются.

Что такое CORS?

CORS расшифровывается как Cross-Origin Resource Sharing (обмен ресурсами между разными источниками). Это механизм, который позволяет указать, какие источники имеют доступ к вашим ресурсам. Настройка CORS позволяет сообщить браузеру, что ваше веб-приложение может выполнять запросы к ведру Firebase Storage, даже если эти два сервера размещены на разных доменах.

Чтобы настроить CORS для вашего ведра Firebase Storage, выполните следующие шаги:

  1. Откройте Консоль Google Cloud.

  2. Запустите Cloud Shell:

    Нажмите на значок Activate Cloud Shell в правом верхнем углу.

    Дождитесь загрузки терминала.

  3. Выполните следующую команду:

    gcloud config set project your-firebase-project-id;
  4. Определите и загрузите файл cors.json:

    Файл cors.json содержит список источников, которым разрешен доступ к вашим ресурсам. Каждый источник представляет собой строку, идентифицирующую домен или порт. Например, следующий источник разрешает доступ с домена www.example.com:

    "origins": ["https://www.example.com"]

    Вы также можете указать список разрешенных заголовков. В следующем примере разрешен доступ к заголовкам Content-Type и Authorization:

    "origins": ["https://www.example.com"], "allowedHeaders": ["Content-Type", "Authorization"]

    Чтобы разрешить доступ к вашему ресурсу с любого источника, используйте *. Файл cors.json ниже разрешает доступ с любого источника, но не позволяет изменять ресурсы.

    [
    {
    "origin": ["*"],
    "method": ["GET"],
    "maxAgeSeconds": 3600
    }
    ]

    После определения файла cors.json загрузите его в Консоль Google Cloud.

    Чтобы убедиться, что файл загружен правильно, выполните ls в консоли — вы должны увидеть файл cors.json в списке.

  5. Выполните команду cors для настройки CORS:

    gcloud storage buckets update gs://your-google-storage-bucket-name --cors-file=cors.json
  6. (Необязательно) Подтвердите успешную настройку, просмотрев CORS ведра

    Выполните следующую команду, чтобы убедиться, что правила из файла cors.json применены.

    gcloud storage buckets describe gs://your-google-storage-bucket-name --format="default(cors_config)"

    Вы должны увидеть те же разрешенные источники и другую информацию, определенную в файле cors.json.

Подробные сведения о настройке CORS в Firebase Storage см. в официальной документации.