Skip to main content

Class: MultipartUploadService

Defined in: services/multipart-upload.service.ts:27

Constructors

Constructor

new MultipartUploadService(client, options, prefixService): MultipartUploadService

Defined in: services/multipart-upload.service.ts:37

Parameters

client

S3Client

options

S3Config

prefixService

PrefixService

Returns

MultipartUploadService

Methods

abortMultipartUpload()

abortMultipartUpload(bucket, key, uploadId): Promise<MultipartUploadAbortion>

Defined in: services/multipart-upload.service.ts:151

Abort a multipart upload and clean up uploaded parts.

Parameters

bucket

string

S3 bucket name

key

string

Object key (use the prefixed key from initiateMultipartUpload)

uploadId

string

Upload ID from initiateMultipartUpload

Returns

Promise<MultipartUploadAbortion>


calculatePartSize()

calculatePartSize(fileSize, preferredPartSize?): PartSizeCalculation

Defined in: services/multipart-upload.service.ts:231

Calculate optimal part size for a given file size.

Priority order for part size determination:

  1. preferredPartSize parameter (highest priority)
  2. Module configuration defaultPartSize
  3. AWS minimum 5MB (fallback)

Automatically adjusts part size to stay within AWS's 10,000 part limit.

Parameters

fileSize

number

Total file size in bytes (must be > 0)

preferredPartSize?

number

Optional preferred part size in bytes (must be >= 5MB)

Returns

PartSizeCalculation

Object containing calculated partSize and totalParts

Throws

BadRequestException if fileSize less than 0 or preferredPartSize less than 5MB

Examples

// Use module default (or AWS minimum if not configured)
calculatePartSize(100 * 1024 * 1024);
// Override with 50MB parts for better performance
calculatePartSize(100 * 1024 * 1024, 50 * 1024 * 1024);

completeMultipartUpload()

completeMultipartUpload(bucket, key, uploadId, parts): Promise<MultipartUploadCompletion>

Defined in: services/multipart-upload.service.ts:114

Complete a multipart upload.

Parameters

bucket

string

S3 bucket name

key

string

Object key (use the prefixed key from initiateMultipartUpload)

uploadId

string

Upload ID from initiateMultipartUpload

parts

Required<Pick<Part, "ETag" | "PartNumber">>[]

Array of uploaded parts with ETags and part numbers (must be sorted)

Returns

Promise<MultipartUploadCompletion>


getUploadPartPresignedUrl()

getUploadPartPresignedUrl(bucket, key, uploadId, partNumber, expiresIn): Promise<PresignedUploadUrl>

Defined in: services/multipart-upload.service.ts:83

Generate a presigned URL for uploading a part.

Parameters

bucket

string

S3 bucket name

key

string

Object key (use the prefixed key from initiateMultipartUpload)

uploadId

string

Upload ID from initiateMultipartUpload

partNumber

number

Part number (1-10000)

expiresIn

number = DEFAULT_EXPIRES_IN

URL expiration time in seconds

Returns

Promise<PresignedUploadUrl>


initiateMultipartUpload()

initiateMultipartUpload(bucket, key, options?): Promise<MultipartUploadInitiation>

Defined in: services/multipart-upload.service.ts:45

Parameters

bucket

string

key

string

options?

MultipartUploadOptions

Returns

Promise<MultipartUploadInitiation>


listParts()

listParts(bucket, key, uploadId, maxParts?, partNumberMarker?): Promise<ListPartsResult>

Defined in: services/multipart-upload.service.ts:174

List uploaded parts of a multipart upload.

Parameters

bucket

string

S3 bucket name

key

string

Object key (use the prefixed key from initiateMultipartUpload)

uploadId

string

Upload ID from initiateMultipartUpload

maxParts?

number

Maximum number of parts to return

partNumberMarker?

number

Part number to start listing from

Returns

Promise<ListPartsResult>