StorageManager
Defined in: packages/synapse-sdk/src/storage/manager.ts:126
Constructors
Section titled “Constructors”Constructor
Section titled “Constructor”new StorageManager(
synapse,warmStorageService,pieceRetriever,withCDN):StorageManager
Defined in: packages/synapse-sdk/src/storage/manager.ts:133
Parameters
Section titled “Parameters”| Parameter | Type |
|---|---|
synapse | Synapse |
warmStorageService | WarmStorageService |
pieceRetriever | PieceRetriever |
withCDN | 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:682
Create a single storage context with specified options
Uses singular providerId and dataSetId to match single-context semantics.
For creating multiple contexts, use createContexts() with plural options.
Parameters
Section titled “Parameters”| Parameter | Type |
|---|---|
options? | CreateContextOptions |
Returns
Section titled “Returns”Example
Section titled “Example”// Create context for specific providerconst ctx = await storage.createContext({ providerId: 1n })
// Create context for specific data setconst ctx = await storage.createContext({ dataSetId: 5n })
// Let smart selection choose (with CDN enabled)const ctx = await storage.createContext({ withCDN: true })createContexts()
Section titled “createContexts()”createContexts(
options?):Promise<StorageContext[]>
Defined in: packages/synapse-sdk/src/storage/manager.ts:614
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 CreateContextsOptions |
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:509
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:749
Query data sets for this client
Parameters
Section titled “Parameters”| Parameter | Type | Description |
|---|---|---|
clientAddress? | `0x${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:740
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:769
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:570
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<`0x${string}`>
Defined in: packages/synapse-sdk/src/storage/manager.ts:760
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 | bigint | The ID of the data set to terminate |
Returns
Section titled “Returns”Promise<`0x${string}`>
Transaction hash
upload()
Section titled “upload()”upload(
data,options?):Promise<UploadResult>
Defined in: packages/synapse-sdk/src/storage/manager.ts:169
Upload data to Filecoin Onchain Cloud using a store→pull→commit flow across multiple providers.
By default, uploads to 2 providers (primary + secondary) for redundancy. Data is uploaded once to the primary, then secondaries pull from the primary via SP-to-SP transfer.
Important: This method only throws if zero copies succeed. Individual copy
failures (including primary) are recorded in result.failures. Always check
result.copies.length against your requested count. See UploadResult
for details on interpreting results.
For large files, prefer streaming to minimize memory usage.
For uploading multiple files, use the split operations API directly: createContexts() → store() → presignForCommit() → pull() → commit()
Parameters
Section titled “Parameters”| Parameter | Type | Description |
|---|---|---|
data | UploadData | Data to upload (Uint8Array or ReadableStream) |
options? | StorageManagerUploadOptions | Upload options including count, provider selection, callbacks |
Returns
Section titled “Returns”Upload result with copies array and any failures - check copies.length
Throws
Section titled “Throws”StoreError if primary store fails (before any data is committed)
Throws
Section titled “Throws”CommitError if all commit attempts fail (data stored but not on-chain)