Files
Oxicloud/docs/architecture/storage-quotas.md
T
Diocrafts f08cffc0e8 feat: add VitePress docs site, music file picker modal, Dockerfile optimization, i18n keys for 14 locales
- Add docs/ with VitePress site (19 pages): guide, config, architecture, FAQ
- Add GitHub Actions workflow for auto-deploy to GitHub Pages
- Replace music 'Add Tracks' upload picker with in-app audio file browser modal
- Add music picker CSS styles with dark theme support
- Add missing i18n keys (search_audio, no_audio_files, etc.) to all 14 locales
- Optimize Dockerfile: shared base stage, COPY --chmod, consolidated RUN, HEALTHCHECK
- Improve README: docs links, updated stats (222+ tests, 14 languages), feature status
2026-04-11 20:58:34 +02:00

1.1 KiB

Storage Quotas

OxiCloud supports per-user storage quotas to limit disk usage.

Enabling Quotas

OXICLOUD_ENABLE_USER_STORAGE_QUOTAS=true

How It Works

  1. Each user has a storage_quota field (in bytes, 0 = unlimited)
  2. On every file upload, the current usage is checked against the quota
  3. If the upload would exceed the quota, it's rejected with a 413 Payload Too Large error
  4. Admins can view and set quotas via the admin panel or API

API

Method Endpoint Description
GET /api/admin/users/{id}/quota Get user's quota and current usage
PUT /api/admin/users/{id}/quota Set user's quota

Admin Panel

The admin panel (/admin.html) shows each user's current usage vs. quota with a visual progress bar.

Deduplication Interaction

Storage usage is calculated based on logical file size (what the user uploaded), not physical blob size. This means:

  • If two users upload the same 100 MB file, each user's quota is charged 100 MB
  • But on disk, only one 100 MB blob exists

This ensures fair quota accounting while maintaining dedup benefits.