Skip to content
SuperFiles Docs
Esc
navigateopen⌘Jpreview
On this page

Core Concepts

Understand the fundamental building blocks of SuperFiles.

Core Concepts

Buckets

A bucket is a top-level namespace for your files — like a folder at the root of your storage. Every file belongs to exactly one bucket.

Property Description
slug URL-safe name used in all API paths and CDN URLs (e.g. my-media)
public When true, objects are accessible without authentication via a CDN URL
storageUsed Total bytes consumed by all objects in the bucket

Buckets are scoped to a team. Each team can have multiple buckets.

Objects

An object is a file stored in a bucket. Objects have:

  • A key — the path within the bucket (e.g. images/avatar.jpg). Slashes in the key create virtual folders; there are no real folder entities.
  • A content hash — SHA-256 of the file contents. Identical files share the same underlying blob (deduplication).
  • Metadata — content type, size, custom headers.
  • Visibility — inherits the bucket’s public setting unless individually overridden with a presigned URL.

Virtual folders

SuperFiles has no real folder objects. “Folders” emerge from the /-separated segments of an object key. The Storage API supports prefix-based listing:

# List everything under "images/"
GET /v1/storage/my-bucket?prefix=images/&delimiter=/

The WebDAV and S3-shim interfaces both expose virtual folders as first-class directory entries.

API keys

API keys authenticate requests to the Storage API and the Management API.

Scope What it grants
storage:read Download objects, list buckets/objects
storage:write Upload, delete, copy, move objects
buckets:manage Create, update, delete buckets
admin Team management, billing, all admin endpoints

Keys are hashed (SHA-256) at rest. If a key is compromised, revoke it from Settings → API Keys — the hash is immediately invalidated.

CDN transforms

When a bucket has CDN enabled, SuperFiles proxies object URLs through an image transform service. Append query parameters to transform on the fly:

https://cdn.superfiles.montr.online/my-bucket/photo.jpg?w=800&h=600&fit=cover&format=webp&q=85
Parameter Description
w Output width in pixels
h Output height in pixels
fit cover | contain | fill | inside | outside
format webp | avif | jpeg | png | gif
q Quality 1–100 (lossy formats only)
blur Gaussian blur radius
sharpen Boolean; applies an unsharp mask
rotate Degrees: 90 | 180 | 270
flip h (horizontal) or v (vertical)

Transformed images are cached at the CDN edge. Cache keys include all transform parameters.

Storage backend

SuperFiles writes blobs to a content-addressed local store by default (~/.superfiles/blobs/<sha256-prefix>/<sha256>). Each unique blob is stored once regardless of how many objects reference it — deduplication is built in.

An optional S3-compatible backend (R2, MinIO, etc.) can be configured for the blob store, while metadata stays in SQLite.

Teams

All resources — buckets, API keys, billing — are owned by a team. Users can belong to multiple teams with different roles (owner, admin, member).

Was this page helpful?