INTEGRITY Dokumentace

Řešení potíží

Řešení problémů s chybami 403 a CORS v R2

Pokud se setkáváte s chybou CORS i přesto, že máte vše nastaveno správně, může vám pomoci tento průvodce řešením problémů.

Pokud v konzoli prohlížeče vidíte nad chybou CORS ještě chybu 401/403, jde o jiný problém, který s CORS nesouvisí.

Pokud problém s CORS skutečně máte, přečtěte si Řešení problémů s CORS.

Pokud používáte vlastní doménu

  1. Otevřete nástroje pro vývojáře ve svém prohlížeči.
  2. Přejděte na Síť kartě a najděte selhávající požadavek. Možná budete muset stránku znovu načíst, protože požadavky se zaznamenávají až po otevření nástrojů pro vývojáře.
  3. Zkontrolujte hlavičky odpovědi, zda obsahují následující dvě hlavičky:

Pokud máte cf-mitigated hlavička

Váš požadavek byl zablokován jedním z vašich pravidel WAF. Zkontrolujte své Security Events abyste zjistili příčinu blokování.

Pokud nemáte cf-cache-status hlavička

Váš požadavek byl zablokován Hotlink Protection.

Upravte nastavení Hotlink Protection pomocí Configuration Rule, nebo ji úplně zakažte.

Pokud používáte S3 API

Váš požadavek může být nesprávně podepsán. Lepší chybovou zprávu můžete získat vyzkoušením požadavku přes curl.

Funkční příklady podepisování S3 najdete na Příklady stránce.

Pokud se skutečně jedná o CORS

Zde jsou některé časté problémy s konfigurací CORS:

Tokeny API na úrovni objektu nefungují s REST API

Pokud používáte token R2 API vytvořený pomocí Object Read & Write nebo Object Read only oprávnění vůči Cloudflare REST API (api.cloudflare.com), se ověření požadavků na objekt nezdaří a vrátí se jedna z následujících chyb:

Tokeny na úrovni objektu jsou podporovány pouze S3 kompatibilní API, které se ověřuje pomocí AWS Signature Version 4 (SigV4).

Chcete-li tento problém vyřešit:

Chyby HTTP 5XX a omezení kapacity Cloudflare R2

Pokud se setkáte s chybou HTTP 5XX, obvykle to znamená, že váš bucket Cloudflare R2 byl zahlcen příliš velkým počtem souběžných požadavků. Tyto chyby mohou vyvolat zámky čtení a zápisu pro celý bucket, což ovlivní výkon všech probíhajících operací.

Abyste se těmto výpadkům vyhnuli, je důležité zavést strategie pro řízení objemu požadavků.

Zde jsou některá opatření, která můžete použít:

Sledování souběžných požadavků

Sledujte počet souběžných požadavků na váš bucket. Pokud klient narazí na chybu 5XX, zajistěte, aby operaci zopakoval a komunikoval s ostatními klienty. Díky koordinaci mohou klienti společně zpomalit, čímž se sníží míra požadavků a udrží stabilnější tok úspěšných operací.

Pokud vaši uživatelé nahrávají přímo do bucketu (například pomocí S3 nebo Workers API), nemusíte být schopni sledovat ani vynucovat limit souběžnosti. V takovém případě doporučujeme sharding bucketů.

Sharding bucketů

Pokud potřebujete vyšší kapacitu a jste ochotni akceptovat vyšší složitost, zvažte sharding bucketů. Tento přístup rozkládá čtení a zápisy mezi více bucketů, čímž snižuje zátěž jednotlivého bucketu. Sharding sice nedokáže zabránit tomu, aby jeden vytížený objekt vyčerpal kapacitu, ale dokáže zmírnit celkový dopad a zlepšit odolnost systému.

Objekty s názvem This object is unnamed

V Cloudflare dashboardu si můžete zobrazit objekty s / v názvu jako složky výběrem Zobrazit prefixy jako adresáře.

Například objekt s názvem example/object se zobrazí následovně.

Názvy objektů, které končí na / způsobí, že dashboard Cloudflare zobrazí objekt jako složku s nepojmenovaným objektem uvnitř.

Pokud například nahrajete objekt s názvem example/ do R2 bucketu se zobrazí následovně.