← Cloudflare R2 / r2 / platform
Устранение неполадок
Устранение проблем с 403 и CORS в R2
Если ошибка CORS возникает, несмотря на правильную настройку, воспользуйтесь этим руководством по устранению неполадок.
Если в консоли браузера над ошибкой CORS отображается ошибка 401/403, значит, проблема не связана с CORS.
Если проблема действительно связана с CORS, см. Устранение проблем с CORS.
Если вы используете пользовательский домен
- Откройте инструменты разработчика в своём браузере.
- Перейдите в Сеть вкладку и найдите неудачный запрос. Возможно, потребуется перезагрузить страницу, так как запросы регистрируются только после открытия инструментов разработчика.
- Проверьте заголовки ответа на наличие следующих двух заголовков:
cf-cache-statuscf-mitigated
Если у вас есть cf-mitigated заголовок
Ваш запрос был заблокирован одним из правил WAF. Проверьте свои Security Events чтобы определить причину блокировки.
Если у вас нет cf-cache-status заголовок
Ваш запрос был заблокирован Hotlink Protection.
Измените настройки Hotlink Protection с помощью Configuration Rule, или отключите её полностью.
Если вы используете S3 API
Возможно, ваш запрос подписан неверно. Более подробное сообщение об ошибке можно получить, отправив запрос через curl.
Рабочие примеры подписи S3-запросов приведены на Примеры страницу.
Если проблема действительно связана с CORS
Ниже перечислены типичные проблемы с конфигурацией CORS:
ExposeHeadersне содержит заголовков, таких какETagAllowedHeadersне содержит заголовков, таких какAuthorizationилиContent-TypeAllowedMethodsне содержит методов, таких какPOST/PUT
Токены API на уровне объекта не работают с REST API
Если вы используете токен API R2, созданный с помощью Object Read & Write или Object Read only разрешения для Cloudflare REST API (api.cloudflare.com), запросы к объекту не проходят аутентификацию и возвращают одну из следующих ошибок:
- Если токен применяется ко всем бакетам:
{"code":10002,"message":"Unauthorized"}(HTTP 401). - Если область действия токена ограничена отдельными бакетами:
{"code":10000,"message":"Authentication error"}(HTTP 403).
Токены на уровне объекта поддерживаются только S3-совместимый API, который проходит аутентификацию с помощью AWS Signature Version 4 (SigV4).
Чтобы решить эту проблему:
- Чтобы продолжать использовать токен на уровне объекта, выполняйте запросы к объектам через S3-совместимый API вместо REST API. S3-совместимый API также лучше подходит для операций с объектами: REST API ограничено по скорости запросов.
- Чтобы использовать REST API, выполните аутентификацию с помощью Admin Read & Write или Admin Read only токен. Административные токены предоставляют доступ на уровне всего аккаунта, а не в рамках отдельного бакета.
Ошибки HTTP 5XX и ограничения производительности Cloudflare R2
Если вы столкнулись с ошибкой HTTP 5XX, это обычно означает, что ваш бакет Cloudflare R2 перегружен слишком большим числом одновременных запросов. Такие ошибки могут вызвать блокировку чтения и записи для всего бакета, что повлияет на производительность всех выполняемых операций.
Чтобы избежать этих сбоев, важно реализовать стратегии управления объемом запросов.
Ниже приведены меры, которые можно применить:
Отслеживание одновременных запросов
Отслеживайте количество одновременных запросов к бакету. Если клиент получает ошибку 5XX, убедитесь, что он повторяет операцию и взаимодействует с другими клиентами. Благодаря такой координации клиенты могут совместно снижать скорость запросов, уменьшая частоту запросов и поддерживая более стабильный поток успешных операций.
Если пользователи загружают файлы напрямую в бакет (например, через S3 API или Workers API), вы можете быть не в состоянии отслеживать или обеспечивать соблюдение лимита параллелизма. В этом случае рекомендуем шардирование бакетов.
Шардирование бакета
Для увеличения ёмкости ценой дополнительной сложности рассмотрите шардирование бакетов. Такой подход распределяет операции чтения и записи между несколькими бакетами, снижая нагрузку на каждый из них. Шардирование не может предотвратить исчерпание ёмкости из-за одного «горячего» объекта, но способно смягчить общее влияние этой проблемы и повысить устойчивость системы.
Объекты с именем This object is unnamed
В панели управления Cloudflare можно выбрать просмотр объектов с / в имени как папки, выбрав Просмотр префиксов как каталогов.
Например, объект с именем example/object будет отображено, как показано ниже.
- пример
- объект
Имена объектов, которые заканчиваются на / приведёт к тому, что панель управления Cloudflare отобразит объект как папку с безымянным объектом внутри.
Например, при загрузке объекта с именем example/ в бакет R2 будет отображаться, как показано ниже.
- пример
This object is unnamed