Skip to content

StorageManager

Defined in: packages/synapse-sdk/src/storage/manager.ts:97

new StorageManager(
synapse,
warmStorageService,
pieceRetriever,
withCDN,
dev,
withIpni?): StorageManager;

Defined in: packages/synapse-sdk/src/storage/manager.ts:106

ParameterType
synapseSynapse
warmStorageServiceWarmStorageService
pieceRetrieverPieceRetriever
withCDNboolean
devboolean
withIpni?boolean

StorageManager

createContext(options?): Promise<StorageContext>;

Defined in: packages/synapse-sdk/src/storage/manager.ts:405

Create a new storage context with specified options

ParameterType
options?StorageServiceOptions

Promise<StorageContext>


createContexts(options?): Promise<StorageContext[]>;

Defined in: packages/synapse-sdk/src/storage/manager.ts:342

Creates storage contexts for multi-provider storage deals and other operations.

By storing data with multiple independent providers, you reduce dependency on any single provider and improve overall data availability. Use contexts together as a group.

Contexts are selected by priority:

  1. Specified datasets (dataSetIds) - uses their existing providers
  2. Specified providers (providerIds or providerAddresses) - finds or creates matching datasets
  3. Automatically selected from remaining approved providers

For automatic selection, existing datasets matching the metadata are reused unless forceCreateDataSets is true. Providers are randomly chosen to distribute across the network.

ParameterTypeDescription
options?CreateContextsOptionsConfiguration options

Promise<StorageContext[]>

Promise resolving to array of storage contexts


download(pieceCid, options?): Promise<Uint8Array<ArrayBufferLike>>;

Defined in: packages/synapse-sdk/src/storage/manager.ts:234

Download data from storage If context is provided, routes to context.download() Otherwise performs SP-agnostic download

ParameterType
pieceCidstring | PieceLink
options?StorageManagerDownloadOptions

Promise<Uint8Array<ArrayBufferLike>>


findDataSets(clientAddress?): Promise<EnhancedDataSetInfo[]>;

Defined in: packages/synapse-sdk/src/storage/manager.ts:483

Query data sets for this client

ParameterTypeDescription
clientAddress?stringOptional client address, defaults to current signer

Promise<EnhancedDataSetInfo[]>

Array of enhanced data set information including management status


getDefaultContext(): Promise<StorageContext>;

Defined in: packages/synapse-sdk/src/storage/manager.ts:474

Get or create the default context

Promise<StorageContext>


getStorageInfo(): Promise<StorageInfo>;

Defined in: packages/synapse-sdk/src/storage/manager.ts:503

Get comprehensive information about the storage service including approved providers, pricing, contract addresses, and current allowances

Promise<StorageInfo>

Complete storage service information


preflightUpload(size, options?): Promise<PreflightInfo>;

Defined in: packages/synapse-sdk/src/storage/manager.ts:295

Run preflight checks for an upload without creating a context

ParameterTypeDescription
sizenumberThe size of data to upload in bytes
options?{ metadata?: Record<string, string>; withCDN?: boolean; }Optional settings including withCDN flag and/or metadata
options.metadata?Record<string, string>-
options.withCDN?boolean-

Promise<PreflightInfo>

Preflight information including costs and allowances


terminateDataSet(dataSetId): Promise<TransactionResponse>;

Defined in: packages/synapse-sdk/src/storage/manager.ts:494

Terminate a data set with given ID that belongs to the synapse signer. This will also result in the removal of all pieces in the data set.

ParameterTypeDescription
dataSetIdnumberThe ID of the data set to terminate

Promise<TransactionResponse>

Transaction response


upload(data, options?): Promise<PromiseSettledResult<UploadResult>[]>;

Defined in: packages/synapse-sdk/src/storage/manager.ts:134

Upload data to storage Uses the storage contexts or context provided in the options Otherwise creates/reuses default context

Accepts Uint8Array, AsyncIterable, or ReadableStream. For large files, prefer streaming types to minimize memory usage.

Note: Multi-context uploads (uploading to multiple providers simultaneously) currently only support Uint8Array. For streaming uploads with multiple contexts, convert your stream to Uint8Array first or use stream forking (future feature).

ParameterType
data| Uint8Array<ArrayBufferLike> | AsyncIterable<Uint8Array<ArrayBufferLike>, any, any> | ReadableStream<Uint8Array<ArrayBufferLike>>
options?StorageManagerUploadOptions

Promise<PromiseSettledResult<UploadResult>[]>