INTEGRITY Документация

Устранение неполадок

Устранение проблем с 403 и CORS в R2

Если ошибка CORS возникает, несмотря на правильную настройку, воспользуйтесь этим руководством по устранению неполадок.

Если в консоли браузера над ошибкой CORS отображается ошибка 401/403, значит, проблема не связана с CORS.

Если проблема действительно связана с CORS, см. Устранение проблем с CORS.

Если вы используете пользовательский домен

  1. Откройте инструменты разработчика в своём браузере.
  2. Перейдите в Сеть вкладку и найдите неудачный запрос. Возможно, потребуется перезагрузить страницу, так как запросы регистрируются только после открытия инструментов разработчика.
  3. Проверьте заголовки ответа на наличие следующих двух заголовков:

Если у вас есть cf-mitigated заголовок

Ваш запрос был заблокирован одним из правил WAF. Проверьте свои Security Events чтобы определить причину блокировки.

Если у вас нет cf-cache-status заголовок

Ваш запрос был заблокирован Hotlink Protection.

Измените настройки Hotlink Protection с помощью Configuration Rule, или отключите её полностью.

Если вы используете S3 API

Возможно, ваш запрос подписан неверно. Более подробное сообщение об ошибке можно получить, отправив запрос через curl.

Рабочие примеры подписи S3-запросов приведены на Примеры страницу.

Если проблема действительно связана с CORS

Ниже перечислены типичные проблемы с конфигурацией CORS:

Токены API на уровне объекта не работают с REST API

Если вы используете токен API R2, созданный с помощью Object Read & Write или Object Read only разрешения для Cloudflare REST API (api.cloudflare.com), запросы к объекту не проходят аутентификацию и возвращают одну из следующих ошибок:

Токены на уровне объекта поддерживаются только S3-совместимый API, который проходит аутентификацию с помощью AWS Signature Version 4 (SigV4).

Чтобы решить эту проблему:

Ошибки HTTP 5XX и ограничения производительности Cloudflare R2

Если вы столкнулись с ошибкой HTTP 5XX, это обычно означает, что ваш бакет Cloudflare R2 перегружен слишком большим числом одновременных запросов. Такие ошибки могут вызвать блокировку чтения и записи для всего бакета, что повлияет на производительность всех выполняемых операций.

Чтобы избежать этих сбоев, важно реализовать стратегии управления объемом запросов.

Ниже приведены меры, которые можно применить:

Отслеживание одновременных запросов

Отслеживайте количество одновременных запросов к бакету. Если клиент получает ошибку 5XX, убедитесь, что он повторяет операцию и взаимодействует с другими клиентами. Благодаря такой координации клиенты могут совместно снижать скорость запросов, уменьшая частоту запросов и поддерживая более стабильный поток успешных операций.

Если пользователи загружают файлы напрямую в бакет (например, через S3 API или Workers API), вы можете быть не в состоянии отслеживать или обеспечивать соблюдение лимита параллелизма. В этом случае рекомендуем шардирование бакетов.

Шардирование бакета

Для увеличения ёмкости ценой дополнительной сложности рассмотрите шардирование бакетов. Такой подход распределяет операции чтения и записи между несколькими бакетами, снижая нагрузку на каждый из них. Шардирование не может предотвратить исчерпание ёмкости из-за одного «горячего» объекта, но способно смягчить общее влияние этой проблемы и повысить устойчивость системы.

Объекты с именем This object is unnamed

В панели управления Cloudflare можно выбрать просмотр объектов с / в имени как папки, выбрав Просмотр префиксов как каталогов.

Например, объект с именем example/object будет отображено, как показано ниже.

Имена объектов, которые заканчиваются на / приведёт к тому, что панель управления Cloudflare отобразит объект как папку с безымянным объектом внутри.

Например, при загрузке объекта с именем example/ в бакет R2 будет отображаться, как показано ниже.