Aeion Files + S3 / R2 / GCS / Azure
Aeion Files is the intelligent metadata + access layer. The bytes live in your cloud account, in your bucket, billed to your account. Storage backends are pluggable adapters — AWS S3, Cloudflare R2, Google Cloud Storage, Azure Blob, and local disk all behave identically to Aeion Files. Any S3-wire-compatible service (Wasabi, Backblaze B2, MinIO, DigitalOcean Spaces) works through the same S3 adapter via a custom endpoint. Automatic backend selection by file size/type, per-call backend override, and failover/replicate storage pools are all expressed once in the Aeion abstraction.
Supported Backends
`
Per-Tenant BYOB (Bring Your Own Bucket)
```typescript
Automatic Backend Selection + Redundancy Pools
```typescript
Setup Walkthrough — AWS S3 with AssumeRole
```bash
FAQ
Yes — each tenant's storage config (backend, bucket, credentials) is independent.
Possible using per-tenant key prefixes and pre-signed URLs, though a per-tenant bucket is simpler for access-log auditing.
Not via a built-in migration wizard today — moving existing objects between backends is a manual copy/re-upload. Aeion Files' `copy()` operation can move a single object between backends (download from source, upload to destination); bulk migration is a scripting exercise against that API, not a one-click admin tool.
Set up native S3 / R2 / GCS bucket replication in your cloud console — Aeion Files doesn't manage or track replication itself. For redundancy within Aeion, a `replicate` storage pool writes to two backends synchronously with per-backend circuit breakers.
Point your CDN at the bucket per your cloud provider's normal setup; Aeion Files' `publicUrlBase` config lets it generate URLs through that CDN domain instead of the raw bucket URL.
Configurable per request when generating the URL (`expiresIn`, in seconds); no fixed platform default is enforced.
Whatever your bucket's default encryption policy specifies (SSE-S3, SSE-KMS, etc.) — Aeion Files doesn't set or manage encryption settings itself, it writes through to whatever the bucket enforces.
AWS S3 Standard: $0.023/GB/month + egress. R2: $0.015/GB/month + $0 egress. B2: $0.005/GB/month + low egress. Wasabi: $0.0059/GB/month + free egress. Per-workload trade-off.
No. Bytes stay in tenant's bucket. Aeion stores metadata + indexes in the tenant's Postgres.
Your data is already in your bucket. Export metadata via Singularity. Aeion Files is the layer; the data is yours.