Bucket quotas
A hard per-bucket size limit in bytes. When a write would push the bucket over its quota, the request is refused with HTTP 507 QuotaExceeded — enforced on PUT, multipart complete, and copy. A quota of 0 (or none configured) means unlimited.
Setting a quota
Through the admin REST API (root credentials):
bash
# Set a 1 GiB quota
curl -X PUT -H "X-API-Key: admin" -H "X-API-Secret: admin-secret" \
-H "Content-Type: application/json" -d '{"quota": 1073741824}' \
http://localhost:8000/rest/api/v1/buckets/my-bucket/quota
# Read quota and current usage
curl -H "X-API-Key: admin" -H "X-API-Secret: admin-secret" \
http://localhost:8000/rest/api/v1/buckets/my-bucket/quota
# → {"quota": 1073741824, "usage": 52428800}
# Clear (back to unlimited)
curl -X DELETE -H "X-API-Key: admin" -H "X-API-Secret: admin-secret" \
http://localhost:8000/rest/api/v1/buckets/my-bucket/quotaOr in the console: bucket settings → Quota tab.
Enforcement semantics
Enforcement is per-node best-effort. Each node checks incoming bytes against a short-lived usage cache rather than recounting the bucket on every write, so:
- In a multi-node cluster, concurrent writes on different nodes may overshoot the quota slightly within the cache window.
- After deletes, freed headroom becomes visible once the cache refreshes.
Treat a quota as a guardrail against runaway growth, not a byte-exact accounting boundary.