You can follow the same pattern that is used in large file uploads in AWS S3. Link for AWS S3 - https://docs.aws.amazon.com/AmazonS3/latest/userguide/mpuoverview.html#apisupportformpu
Initiate • POST /upload/initiate • Response: { "uploadId": "xyz", "key": "uploads/filename" }
Upload Parts • GET /upload/url?uploadId=xyz&key=...&partNumber=1 • PUT to presigned URL with part data • Save returned ETag from S3 response
Complete • POST /upload/complete with {uploadId, key, parts: [{PartNumber, ETag}]}