The backing storage provider
Deletes an object.
Object path/key
true if an object was deleted
Reports whether an object exists.
Object path/key
true if present
Creates a time-limited URL granting direct access to an object.
Object path/key
URL validity
The signed URL
Retrieves an object as a streaming body for zero-copy downloads.
Delegates to the provider's optional getStream; falls back to wrapping
the buffered get result in a one-chunk ReadableStream when the provider
lacks native streaming support.
Observation records the ACQUISITION of the stream — or, for the buffered fallback, the buffered read behind it — and its outcome. Transfer completion is unknown and never claimed: the stream is returned to the caller untouched, with no diagnostic read, tee, wrap or listener.
Object path/key
A ReadableStream of object bytes
Stores an object.
Object path/key
Object bytes
Optionaloptions: PutObjectOptions
Object attributes to record with the bytes; forwarded to the provider verbatim, and omitted entirely when the caller omits it, so a provider can tell "no attributes given" from "empty attributes given"
Storage service backed by a pluggable provider.
The committed
IStorage.getthrows when an object is absent; providers signal absence withnull, and this service performs thenull → throwconversion so the throw contract lives in one place.Every method is
async, which is load-bearing rather than stylistic: this class is exported, so an application can hand it its own provider (structural typing needs noStorageProviderimport), and a non-asyncreturn provider.x()would let that provider's SYNCHRONOUS throw escapeIStoragebefore the promise exists, where a caller using.catch()can never see it.asyncturns it into a rejection.When its StoragePlugin was opted into diagnostics (M98m), each public operation settlement is additionally counted under one approved alias. The
getStreambuffered fallback shares the private unobserved buffered read withget, so one fallback is exactly ONEgetStreamobservation — the internal read is never counted as a second publicget, and a concurrent publicgetis never suppressed. A service constructed directly carries no collector and runs unobserved.Since
0.1.0