Ошибки и лимиты
Каждая ошибка возвращает стабильный код, понятное сообщение и request_id, по которому поддержка находит вызов.
Тело ошибки
{"error":{"code":"object_not_found","message":"No such key","request_id":"req_8f21c","node":"fra1-n07"}}
Коды
| HTTP | Код | Значение | Что делать |
|---|---|---|---|
| 400 | invalid_key | Формат ключа отклонён. | Ключ — UTF-8 без ведущего слэша; кодируйте зарезервированные символы. |
| 401 | missing_token | Нет заголовка Authorization. | Отправьте Bearer или SigV4. |
| 403 | signature_mismatch | Не совпал хост или хэш тела в SigV4. | Подписывайте api.objectbasin.com. |
| 404 | bucket_not_found | Бакета нет в этом регионе. | Укажите ?region= или создайте бакет. |
| 404 | object_not_found | Ключа нет или он истёк по жизненному циклу. | Проверьте префикс списком объектов. |
| 409 | upload_conflict | Номер части переиспользован с другими байтами. | Перезапустите часть или загрузку. |
| 413 | object_too_large | Одиночный PUT больше 5 ГиБ. | Используйте multipart. |
| 429 | rate_limited | Превышено 6 000 запросов в минуту по ключу. | Снизьте темп, смотрите Retry-After. |
| 507 | quota_exceeded | Достигнута квота хранения. | Повысьте тариф или удалите данные. |
| 503 | node_unavailable | Одна из реплик недоступна. | Повторите: запись требует 3/3 реплик. |
Лимиты
| Лимит | Значение |
|---|---|
| Размер объекта | 5 ТиБ (multipart) |
| Одиночный PUT | 5 ГиБ |
| Частей на загрузку | 10 000 |
| Запросов на ключ | 6 000/мин, всплеск 12 000 |
| Срок подписанной ссылки | 604 800 с (7 дней) |
| Бакетов на аккаунт | 50 |
Повторы
Повторяйте 429, 503 и сетевые ошибки с экспоненциальной задержкой от 200 мс. Стандартные SDK делают это сами; остальные 4xx, кроме 429, повторять не нужно.