一句話:單條 presigned PUT 一次傳一整個物件;檔案很大(幾 GB)時,用 multipart upload 把它切成很多片、每片各簽一條 presigned URL 平行傳,最後合成一個物件。
單條 PUT 一次一個 body——檔案很大時,一次傳整包又慢又脆:中途斷線就得整個重來,也沒法平行加速。multipart 把大檔切片,各片獨立處理,解掉這兩個痛點。
CreateMultipartUpload,拿到一個 uploadId。UploadPart,帶 partNumber + uploadId)。CompleteMultipartUpload,S3 把片合成一個完整物件。CreateMultipartUpload → uploadId
├─ 簽 URL(part 1) → 前端 PUT part 1 ┐
├─ 簽 URL(part 2) → 前端 PUT part 2 ├─ 平行
└─ 簽 URL(part N) → 前端 PUT part N ┘
CompleteMultipartUpload → 合成一個物件
每一片的授權,本質上還是你熟悉的 presigned URL(SigV4 簽的)——multipart 只是把「一個大 PUT」變成「很多個小 PUT + 一個合併」。