Object Storage
K3’s object storage is S3-compatible, with re-signing for SigV4 / SigV2 and K3 token-based access. It speaks the standard S3 protocol — PUT / GET / HEAD / DELETE / LIST, multipart uploads, presigned URLs, ACL, and CORS — so existing S3 tooling works out of the box.
It also doubles as the base storage layer for every other K3 primitive: Tables persist their Delta Lake artifacts in the bucket, and Vector collections snapshot to S3 as well. Object Storage is “where bytes live”; the other primitives layer meaning, structure, and retrieval on top.
What makes K3 storage different from plain S3: every upload can flow into an ingest pipeline automatically — vector indexes, warehouses, or custom Scriptum workflows. See Pipelines for that side.
What you can do
- Standard S3
PUT/GET/HEAD/DELETE/LIST(including multipart) against the K3 gateway - Bucket creation, S3-style policy (ACL), CORS configuration
- Pre-signed URLs (SigV4, SigV2, K3 token)
- Drop in existing S3 SDKs and tooling —
aws-cli,boto3,@aws-sdk/client-s3, MinIO client, etc. - Auto-discovery into ingest pipelines on upload
In this section
- Quickstart — your first bucket, object, and presigned URL in 5 minutes
- Core Concepts — buckets, objects, policy, CORS, presigned URLs
- API Reference — gRPC + HTTP contracts, grouped per resource
- CLI Guide —
dodil k3CLI for buckets, policy, CORS, objects, and mounts
See also
- Core Concepts
- API Reference
- CLI Guide
- Conventions — auth, headers, error envelope
- CLI Basics — install + common flags