Skip to content

S3MultipartOptions

Defined in: src/providers/web/S3Provider.ts:84

Multipart upload tuning for the S3 provider.

PropertyTypeDescriptionDefined in
enabled?booleanEnable multipart upload. Defaults to true so large objects stream in fixed-size parts instead of being buffered in memory before a single PUT. Payloads at or below S3MultipartOptions.thresholdBytes still fall back to a single-shot PUT automatically. Set to false to force single-shot behaviour (e.g. when targeting an S3-compatible endpoint that does not support CreateMultipartUpload). Single-shot uploads stream with UNSIGNED-PAYLOAD signing when the total size is known; S3 requires a Content-Length up front, so unknown-size payloads are buffered entirely in memory on this path.src/providers/web/S3Provider.ts:96
partConcurrency?numberNumber of parts uploaded concurrently. Defaults to 4; 1 reproduces the sequential one-part-at-a-time behavior. Buffered memory is bounded at (partConcurrency + 1) x partSizeBytes (32 + 8 MiB with defaults). Progress and resume checkpoints advance on the contiguous prefix of completed parts, so they stay monotonic under parallel completion.src/providers/web/S3Provider.ts:108
partSizeBytes?numberTarget part size in bytes. Must be ≥ 5 MiB except for the final part. Defaults to 8 MiB.src/providers/web/S3Provider.ts:100
resumeStore?S3MultipartResumeStoreOptional persistent store enabling cross-process resume of incomplete multipart uploads. When provided, in-flight uploadId plus uploaded part etags are checkpointed after every part; on retry the upload reuses the stored state and skips the bytes already transferred. :::caution[Deprecated] Use the unified checkpoint model instead: pass resume: { store: createFileSystemTransferCheckpointStore(...) } to runRoute / the transfer helpers (or set it as a client default). Unified checkpoints are keyed by source+destination path - not by job id - so they match across processes, and they work for every provider, not just S3. This store remains supported for compatibility. :::src/providers/web/S3Provider.ts:122
thresholdBytes?numberObject size threshold in bytes above which multipart is used. Defaults to 8 MiB.src/providers/web/S3Provider.ts:98