Skip to content

StorageManagerUploadOptions

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

Upload options for StorageManager.upload() - the all-in-one upload method

Extends CreateContextsOptions to inherit multi-copy provider selection. Adds upload-specific options: explicit contexts, pre-calculated PieceCID, and abort signal.

Usage patterns:

  1. With explicit contexts: { contexts, callbacks?, metadata? } - uses the given contexts
  2. Auto-create contexts: { providerIds?, dataSetIds?, withCDN?, callbacks?, metadata? } - creates/reuses contexts
  3. Use default contexts: { callbacks?, metadata? } - uses cached default contexts
// Upload with specific providers
await storage.upload(data, { providerIds: [1n, 2n] })
// Upload with pre-created contexts
await storage.upload(data, { contexts: [ctx1, ctx2] })
// Upload with smart selection (default 2 copies)
await storage.upload(data)

optional callbacks: Partial<CombinedCallbacks>

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

Callbacks for both context creation and upload lifecycle

CreateContextsOptions.callbacks


optional contexts: StorageContext[]

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

Pre-created contexts to use. If provided, other selection options are invalid.


optional count: number

Defined in: packages/synapse-sdk/src/types.ts:395

Number of contexts to create.

  • When NEITHER dataSetIds nor providerIds are specified: controls smart selection
  • When explicit IDs are provided: if specified, must match the deduplicated array length
2 (only for smart selection)

CreateContextsOptions.count


optional dataSetIds: bigint[]

Defined in: packages/synapse-sdk/src/types.ts:415

Specific data set IDs to use.

When provided:

  • Contexts are created for exactly these data sets (duplicates removed)
  • If count is specified, it must match the deduplicated length
  • Each data set must exist and belong to the current client
  • Each data set must belong to a unique provider (no duplicates)
  • Mutually exclusive with providerIds

Note: Bypasses smart selection. Endorsed provider prioritization and ordering logic are your responsibility when using explicit IDs.

If any data set does not exist or is not owned by client

If data sets resolve to duplicate providers

If combined with providerIds

If count does not match deduplicated array length

CreateContextsOptions.dataSetIds


optional excludeProviderIds: bigint[]

Defined in: packages/synapse-sdk/src/types.ts:444

Internal

Provider IDs to exclude from smart selection.

Only applies when NEITHER dataSetIds nor providerIds are specified. Used internally by retry logic to avoid re-selecting failed providers.

Not recommended for general use

CreateContextsOptions.excludeProviderIds


optional metadata: Record<string, string>

Defined in: packages/synapse-sdk/src/types.ts:310

Custom metadata for data sets (key-value pairs). Used to match existing data sets during provider selection or smart selection.

CreateContextsOptions.metadata


optional pieceCid: PieceLink

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

Optional pre-calculated PieceCID to skip CommP calculation (verified by server)


optional pieceMetadata: Record<string, string>

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

Custom metadata for pieces being uploaded (key-value pairs)


optional providerIds: bigint[]

Defined in: packages/synapse-sdk/src/types.ts:434

Specific provider IDs to use.

When provided:

  • Contexts are created for exactly these providers (duplicates removed)
  • If count is specified, it must match the deduplicated length
  • Each provider must exist in the registry
  • Existing data sets matching metadata are reused when available
  • Mutually exclusive with dataSetIds

Note: Bypasses smart selection. Endorsed provider prioritization and ordering logic are your responsibility when using explicit IDs.

If any provider is not found in registry

If combined with dataSetIds

If count does not match deduplicated array length

CreateContextsOptions.providerIds


optional signal: AbortSignal

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

Optional AbortSignal to cancel the upload


optional withCDN: boolean

Defined in: packages/synapse-sdk/src/types.ts:304

Whether to enable CDN services for the context

CreateContextsOptions.withCDN