Storage wrapper with Task/Stream semantics for error-tolerant object operations.
Basic put/get operations
Basic put/get operations
import { Storage, createMemory } from "@anabranch/storage"; const connector = createMemory(); const storage = await Storage.connect(connector).run(); await storage.put("hello.txt", "Hello, World!").run(); const object = await storage.get("hello.txt").run();
new
Storage(adapter: StorageAdapter)
connect(connector: StorageConnector): Task<Storage, StorageConnectionFailed>
Connect to storage via a connector.
close(): Task<void, StorageCloseFailed>
Release the connection back to its source (e.g., pool).
delete(key: string): Task<void, StorageDeleteFailed>
Delete an object from storage.
get(key: string): Task<StorageObject, StorageGetFailed | StorageObjectNotFound>
Get an object from storage.
head(key: string): Task<StorageMetadata, StorageHeadFailed | StorageObjectNotFound>
Get metadata for an object without fetching the body.
list(prefix?: string): Source<StorageEntry, StorageListFailed>
List objects in storage with optional prefix.
presign(key: string,options: PresignOptions,): Task<string, StoragePresignFailed | StoragePresignNotSupported>
Generate a presigned URL for direct object access.
Only available on adapters that implement PresignableAdapter
(S3, GCS). Throws StoragePresignNotSupported for adapters
that don't support presigning (memory, browser).
put(): Task<void, StoragePutFailed>
Put an object into storage.