Skip to Content
We are live but in Staging 🎉
Object StorageAPI ReferenceOverview

Object Storage — API Reference

The Storage primitive (dodil.k3.storage.v1) has two surfaces:

  • Admin & metadata — available in both gRPC and HTTP. Bucket lifecycle, S3-style policy, CORS, and the admin object surface (list, info, delete, presigned URL).
  • Object byte plane — full S3 protocol via the K3 HTTP gateway: PUT / GET / HEAD / DELETE directly on /:bucket/:key. There is no gRPC equivalent — object bytes don’t flow through the gRPC StorageService.

For the typed domain model (Bucket, ObjectInfo, BucketPolicy, …) see Core Concepts. For headers and the error envelope see Conventions.

Sections

  • BucketsCreateBucket · GetBucket · ListBuckets · UpdateBucket · DeleteBucket
  • PolicySetBucketPolicy · GetBucketPolicy · DeleteBucketPolicy
  • CORSPutBucketCors · GetBucketCors · DeleteBucketCors
  • Objects — Byte plane (PUT / GET / HEAD via S3 protocol) + admin (ListObjects · GetObjectInfo · DeleteObject · GetObjectUrl)

Wire conventions

HTTP request bodyHTTP query / pathgRPC
Field namescamelCase (pbjson)snake_case (max_keys, expires_in_seconds)as in .proto
Enumswire-name strings ("BUCKET_STATUS_ACTIVE")enum
int64JSON stringsstringsint64
All fieldsalways emitted (no defaults dropped)

S3-tool compatibility

The K3 HTTP gateway speaks S3, so standard tooling works:

aws s3 ls s3://kb-prod/ --endpoint-url https://k3.dev.dodil.io aws s3 cp ./file.pdf s3://kb-prod/docs/file.pdf --endpoint-url https://k3.dev.dodil.io

See also