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
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:
- preferredPartSize parameter (highest priority)
- Module configuration defaultPartSize
- 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
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?
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>