Storage

Any cloud, any bucket, one API

FileNest abstracts over S3, R2, Azure Blob, GCS, and MinIO behind a single interface. Switch providers per project — or bring your own bucket — without touching your application code.

Provider abstraction

All storage operations go through the `StorageProvider` protocol. Service code never imports S3Client, BlobServiceClient, or any provider SDK directly — only the injected provider interface.

Per-project configuration

Each project stores its storage provider, bucket/container name, region, and credentials in the FileNest database. Switching a project to a different bucket is a config change, not a code change.

Bring your own bucket

Enterprise tenants can supply credentials to their own S3 bucket, Azure container, or GCS bucket. FileNest manages the presigned URL lifecycle without ever touching the storage provider credentials client-side.

Multipart upload

Files larger than 100 MB automatically switch to multipart upload. FileNest coordinates part URL generation, parallel part upload, and final assembly — the SDK handles retry logic per part.

Encryption at rest

SSE-S3 by default. Projects with HIPAA controls enabled enforce SSE-KMS with a customer-managed key. The encryption mode is validated when a project's compliance configuration is saved.

Storage migration

Files can be moved between storage providers server-side via a COPY+DELETE operation coordinated by FileNest. The file record's storage key is updated atomically — client applications see no downtime.

Supported providers

Amazon S3Phase 1

AWS S3 + S3-compatible endpoints. Presigned PUT for direct upload. Multipart upload for files > 100 MB. Server-side encryption (SSE-S3 or SSE-KMS). Lifecycle rules for intelligent tiering.

Cloudflare R2Phase 7

Zero egress cost. S3-compatible API. Ideal for high-download workloads like media delivery. R2 public buckets available for CDN-backed asset delivery.

Azure Blob StoragePhase 7

Azure AD integration, SAS token generation, tiered storage (Hot / Cool / Archive). Suitable for enterprise tenants already on Azure.

Google Cloud StoragePhase 7

GCS signed URL generation. Uniform bucket-level access enforced. Works with Cloud CDN for global asset delivery.

MinIOPhase 1

S3-compatible self-hosted object storage. Used in the local dev stack (Docker). Lets teams develop without cloud credentials.