Documentation
¶
Overview ¶
Package blob is object storage as one small interface: whole-object Put/Get/List/ Delete. The Local backend backs self-host and dev; an S3/R2/Tigris backend (same interface) backs cloud cold storage. This single seam is the entire object-storage story — the segment store never knows which backend it's talking to.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Local ¶
type Local struct {
// contains filtered or unexported fields
}
Local stores objects as files under a directory. Keys map to relative paths; any "../" traversal is rejected so a key can't escape the root.
type S3 ¶
type S3 struct {
// contains filtered or unexported fields
}
S3 is an S3-compatible object-storage backend implemented with stdlib only — no AWS SDK, so the binary stays single and static. It speaks plain HTTP with SigV4 signing, which works against AWS S3, Cloudflare R2, Tigris, Backblaze B2, and MinIO. This is the cold tier for the cloud: per-tenant prefixes, infinite history at pennies/GB.
func NewS3 ¶
NewS3 builds an S3 backend. region may be "auto" for R2. prefix (optional) namespaces every key — pass a per-tenant value in the cloud so one bucket holds many tenants.