ReadonlykindThe single payload kind this provider natively produces/consumes.
ReadonlyrootReadonlysupportsdirectCopy/directMove accept a directory sourcePath and recurse internally.
Self-reported direct-transfer eligibility - the provider owns what "same" means for its backend (e.g. same mount for filesystem, same bucket+region+credentials for object storage).
Creates an empty container at path (idempotent - mkdir-p style). Used
by non-direct recursive copy/move to recreate source containers that
hold no entries at the destination. Providers whose backend has no real
container concept can omit this.
Optional_telemetry: TransferTelemetryOptional_telemetry: TransferTelemetryProvider-specific multipart upload (e.g. S3's multipart protocol). The
read side needs no equivalent: any readable handle implementing
RangeReadable can be read in parts.
With resume, a token from a previous writer's resumeToken(), the
writer continues that upload: it re-checks which parts were actually
committed and skips any part it is given again. The token's offset is
the size of the committed parts before the first missing one, so the
caller only needs to send the parts from that offset on.
Reports this provider's part-size bounds for a multipart transfer of an
entry of totalSize bytes (e.g. S3's minimum part size and 10000-part
cap). Omit when the provider has no such constraints - the framework
treats a missing implementation as unconstrained.
Opens a writable stream. With resume, the provider re-checks what was
actually committed and continues from there, reporting the real resume
position as startOffset (bytes).
Optionalopts: { resume?: ResumeToken }Builds a child key from a container key and a child name. Omit to use
the framework default (/-join).
Lists the entries in a container. Omitted by protocols with no container concept.
Optionaloptions: { recursive?: boolean; regex?: RegExp }Omitted by protocols with no generic way to change entry properties.
Local filesystem source/sink provider. All paths are resolved and sandboxed against
rootPathvia resolvePath - a path that would escape the root is rejected rather than followed.rootPath === ""means "no restriction" (see resolvePath) - preserved here rather than eagerly resolved, sinceresolve("")would otherwise collapse it tocwdbeforeresolvePathever sees the sentinel.