← Cloudflare R2 / r2 / api
Kódy chyb
Tato stránka dokumentuje chybové kódy vracené R2 při použití Workers API nebo S3 kompatibilní API, spolu s doporučenými opravami, které pomohou při řešení potíží.
Jak se vracejí chyby
Pro Workers API, operace R2 vyvolávají výjimky, které můžete zachytit. Kód chyby je uveden na konci message vlastnost:
try {
await env.MY_BUCKET.put("my-key", data, { customMetadata: largeMetadata });
} catch (error) {
console.error(error.message);
// "put: Your metadata headers exceed the maximum allowed metadata size. (10012)"
}Pro S3 kompatibilní API, chyby se vracejí jako XML v těle odpovědi:
<?xml version="1.0" encoding="UTF-8"?>
<Error>
<Code>NoSuchKey</Code>
<Message>The specified key does not exist.</Message>
</Error>Přehled chybových kódů
Chyby ověřování a autorizace
| Kód chyby | Kód S3 | Stav HTTP | Podrobnosti | Doporučená oprava |
|---|---|---|---|---|
| 10002 | Unauthorized | 401 | Chybějící nebo neplatné přihlašovací údaje. | Zkontrolujte svůj API token nebo přístupové klíče jsou správné a jejich platnost nevypršela. |
| 10003 | AccessDenied | 403 | Nedostatečná oprávnění pro požadovanou operaci. | Zkontrolujte, zda váš API token má požadovaná oprávnění pro bucket a operaci. |
| 10018 | ExpiredRequest | 403 | Platnost presigned URL nebo podpisu požadavku vypršela. | Znovu vygenerujte předem podepsaná URL adresa nebo podpis. |
| 10035 | SignatureDoesNotMatch | 403 | Podpis požadavku neodpovídá vypočítanému podpisu. | Zkontrolujte svůj tajný klíč a algoritmus podepisování. Zkontrolujte možné problémy s kódováním URL. |
| 10042 | NotEntitled | 403 | Účet nemá k této funkci oprávnění. | Ujistěte se, že váš účet má Předplatné R2. |
Chyby bucketu
| Kód chyby | Kód S3 | Stav HTTP | Podrobnosti | Doporučená oprava |
|---|---|---|---|---|
| 10005 | InvalidBucketName | 400 | Název bucketu nesplňuje požadavky na pojmenování. | Název bucketu musí mít 3-63 znaků, malá alfanumerická písmena a spojovníky, začínat/končit alfanumerickým znakem. |
| 10006 | NoSuchBucket | 404 | Zadaný bucket neexistuje. | Ověřte, že název bucketu je správný a že bucket ve vašem účtu existuje. |
| 10008 | BucketNotEmpty | 409 | Nelze odstranit bucket, který obsahuje objekty. | Před odstraněním bucketu odstraňte všechny objekty, které obsahuje. |
| 10009 | TooManyBuckets | 400 | Byl překročen limit počtu bucketů účtu (výchozí hodnota: 1,000,000 bucketů). | Požádejte o zvýšení limitu přes Formulář žádosti o navýšení limitů ↗. |
| 10073 | BucketConflict | 409 | Název bucketu již existuje. | Zvolte jiný název bucketu. Názvy bucketů musí být v rámci vašeho účtu jedinečné. |
Chyby objektů
| Kód chyby | Kód S3 | Stav HTTP | Podrobnosti | Doporučená oprava |
|---|---|---|---|---|
| 10007 | NoSuchKey | 404 | Zadaný klíč objektu neexistuje. Pro Workers API, get() a head() vrátit null místo vyvolání výjimky. |
Ověřte, že klíč objektu je správný a že objekt nebyl smazán. |
| 10020 | InvalidObjectName | 400 | Klíč objektu obsahuje neplatné znaky nebo je příliš dlouhý. | Používejte platné znaky UTF-8. Maximální délka klíče je 1024 bajtů. |
| 100100 | EntityTooLarge | 400 | Objekt překračuje maximální velikost (5 GiB pro jednotlivé nahrání, 5 TiB pro vícedílné nahrávání). | Použijte vícedílné nahrávání pro objekty větší než 5 GiB. Maximální velikost objektu je 5 TiB. |
| 10012 | MetadataTooLarge | 400 | Vlastní metadata překračují limit 8,192 bajtů. | Zmenšete velikost vlastních metadat. Maximum je celkem 8,192 bajtů pro všechna vlastní metadata. |
| 10069 | ObjectLockedByBucketPolicy | 403 | Objekt je chráněn pravidlem zámku bucketu a nelze jej upravit ani odstranit. | Počkejte, až vyprší doba uchování. Další informace najdete v zámky bucketu. |
Chyby nahrávání a požadavků
| Kód chyby | Kód S3 | Stav HTTP | Podrobnosti | Doporučená oprava |
|---|---|---|---|---|
| 10033 | MissingContentLength | 411 | Content-Length hlavička je vyžadována, ale chybí. |
Zahrňte Content-Length hlavičku v požadavcích PUT/POST. |
| 10013 | IncompleteBody | 400 | Tělo požadavku skončilo dříve, než bylo očekáváno Content-Length. |
Zajistěte, aby se odeslalo celé tělo požadavku. Zkontrolujte, zda nedošlo k přerušení sítě nebo vypršení časového limitu klienta. |
| 10014 | InvalidDigest | 400 | Formát hlavičky kontrolního součtu je neplatný. | Zajistěte, aby kontrolní součty byly správně zakódované (base64 pro kontrolní součty SHA/CRC). |
| 10037 | BadDigest | 400 | Zadaný kontrolní součet neodpovídá nahranému obsahu. | Ověřte integritu dat a nahrávání zopakujte. |
| 10039 | InvalidRange | 416 | Požadovaný rozsah bajtů nelze splnit. | Zajistěte, aby počátek rozsahu byl menší než velikost objektu. Zkontrolujte Range formát hlavičky. |
| 10031 | PreconditionFailed | 412 | Podmíněné hlavičky (If-Match, If-Unmodified-Since, atd.) nebyly splněny. |
ETag objektu nebo čas úpravy neodpovídá vaší podmínce. Načtěte znovu a zopakujte akci. Více informací najdete na podmíněné operace. |
Chyby vícedílného nahrávání
| Kód chyby | Kód S3 | Stav HTTP | Podrobnosti | Doporučená oprava |
|---|---|---|---|---|
| 10011 | EntityTooSmall | 400 | Část vícedílného nahrávání je menší než minimální velikost (5 MiB), s výjimkou poslední části. | Zajistěte, aby každá část (kromě poslední) měla alespoň 5 MiB. |
| 10024 | NoSuchUpload | 404 | Vícedílné nahrávání neexistuje nebo bylo přerušeno. | Ověřte uploadId je správně. Nedokončená vícedílná nahrávání ve výchozím nastavení vyprší po 7 dnech. Viz životní cykly objektů. |
| 10025 | InvalidPart | 400 | Při dokončování nahrávání se nepodařilo najít jednu nebo více částí. | Ověřte, že se každá část úspěšně nahrála, a použijte přesný ETag vrácený z UploadPart. |
| 10048 | InvalidPart | 400 | Všechny části kromě poslední musí mít stejnou velikost. | Zajistěte, aby všechny části kromě poslední měly stejnou velikost. R2 vyžaduje jednotnou velikost částí pro vícedílné nahrávání. |
Chyby služby
| Kód chyby | Kód S3 | Stav HTTP | Podrobnosti | Doporučená oprava |
|---|---|---|---|---|
| 10001 | InternalError | 500 | Došlo k interní chybě. | Opakujte požadavek. Pokud problém přetrvává, zkontrolujte Cloudflare Status ↗ nebo kontaktujte podporu. |
| 10043 | ServiceUnavailable | 503 | Služba je dočasně nedostupná. | Opakujte s exponenciálně rostoucí prodlevou. Zkontrolujte Cloudflare Status ↗. |
| 10054 | ClientDisconnect | 400 | Klient se odpojil před dokončením požadavku. | Zkontrolujte síťové připojení a zkuste to znovu. |
| 10058 | TooManyRequests | 429 | Byl překročen limit rychlosti požadavků. Obvykle je to způsobeno více souběžnými požadavky na stejný klíč objektu (limit: 1 zápis za sekundu na klíč). | Zkontrolujte, zda k témuž klíči objektu nepřistupuje více klientů současně. Viz Limity R2. |