StorageManager
Defined in: packages/synapse-sdk/src/storage/manager.ts:97
Constructors
Section titled “Constructors”Constructor
Section titled “Constructor”new StorageManager( synapse, warmStorageService, pieceRetriever, withCDN, dev, withIpni?): StorageManager;Defined in: packages/synapse-sdk/src/storage/manager.ts:106
Parameters
Section titled “Parameters”| Parameter | Type |
|---|---|
synapse | Synapse |
warmStorageService | WarmStorageService |
pieceRetriever | PieceRetriever |
withCDN | boolean |
dev | boolean |
withIpni? | boolean |
Returns
Section titled “Returns”StorageManager
Methods
Section titled “Methods”createContext()
Section titled “createContext()”createContext(options?): Promise<StorageContext>;Defined in: packages/synapse-sdk/src/storage/manager.ts:506
Create a new storage context with specified options
Parameters
Section titled “Parameters”| Parameter | Type |
|---|---|
options? | StorageServiceOptions |
Returns
Section titled “Returns”createContextFromDataSetId()
Section titled “createContextFromDataSetId()”createContextFromDataSetId(dataSetId, options?): Promise<StorageContext>;Defined in: packages/synapse-sdk/src/storage/manager.ts:420
Create a storage context from an existing dataset ID without scanning all client datasets. This is optimized for reconnecting to a known dataset.
This method bypasses the expensive dataset enumeration in createContext({ dataSetId }), making it significantly faster when the client has many datasets.
Parameters
Section titled “Parameters”| Parameter | Type | Description |
|---|---|---|
dataSetId | number | The dataset ID to create a context for |
options? | StorageServiceOptions | Optional storage options (withCDN, callbacks, etc.) |
Returns
Section titled “Returns”Storage context for the specified dataset
Example
Section titled “Example”// Reconnect to a known datasetconst context = await synapse.storage.createContextFromDataSetId(123)await context.upload(data)createContexts()
Section titled “createContexts()”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:
- Specified datasets (
dataSetIds) - uses their existing providers - Specified providers (
providerIdsorproviderAddresses) - finds or creates matching datasets - 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.
Parameters
Section titled “Parameters”| Parameter | Type | Description |
|---|---|---|
options? | CreateContextsOptions | Configuration options |
Returns
Section titled “Returns”Promise resolving to array of storage contexts
download()
Section titled “download()”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
Parameters
Section titled “Parameters”| Parameter | Type |
|---|---|
pieceCid | string | PieceLink |
options? | StorageManagerDownloadOptions |
Returns
Section titled “Returns”Promise<Uint8Array<ArrayBufferLike>>
findDataSets()
Section titled “findDataSets()”findDataSets(clientAddress?): Promise<EnhancedDataSetInfo[]>;Defined in: packages/synapse-sdk/src/storage/manager.ts:584
Query data sets for this client
Parameters
Section titled “Parameters”| Parameter | Type | Description |
|---|---|---|
clientAddress? | string | Optional client address, defaults to current signer |
Returns
Section titled “Returns”Promise<EnhancedDataSetInfo[]>
Array of enhanced data set information including management status
getDefaultContext()
Section titled “getDefaultContext()”getDefaultContext(): Promise<StorageContext>;Defined in: packages/synapse-sdk/src/storage/manager.ts:575
Get or create the default context
Returns
Section titled “Returns”getStorageInfo()
Section titled “getStorageInfo()”getStorageInfo(): Promise<StorageInfo>;Defined in: packages/synapse-sdk/src/storage/manager.ts:604
Get comprehensive information about the storage service including approved providers, pricing, contract addresses, and current allowances
Returns
Section titled “Returns”Complete storage service information
preflightUpload()
Section titled “preflightUpload()”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
Parameters
Section titled “Parameters”| Parameter | Type | Description |
|---|---|---|
size | number | The 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 | - |
Returns
Section titled “Returns”Preflight information including costs and allowances
terminateDataSet()
Section titled “terminateDataSet()”terminateDataSet(dataSetId): Promise<TransactionResponse>;Defined in: packages/synapse-sdk/src/storage/manager.ts:595
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.
Parameters
Section titled “Parameters”| Parameter | Type | Description |
|---|---|---|
dataSetId | number | The ID of the data set to terminate |
Returns
Section titled “Returns”Promise<TransactionResponse>
Transaction response
upload()
Section titled “upload()”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
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).
Parameters
Section titled “Parameters”| Parameter | Type |
|---|---|
data | | Uint8Array<ArrayBufferLike> | AsyncIterable<Uint8Array<ArrayBufferLike>, any, any> | ReadableStream<Uint8Array<ArrayBufferLike>> |
options? | StorageManagerUploadOptions |
Returns
Section titled “Returns”Promise<PromiseSettledResult<UploadResult>[]>