S3 Multipart 分片直传与断点续传实践关键步骤(JavaScript/TypeScript)import { S3Client, CreateMultipartUploadCommand, UploadPartCommand, CompleteMultipartUploadCommand } from '@aws-sdk/client-s3' const s3 = new S3Client({ region: 'us-east-1' }) const create = await s3.send(new CreateMultipartUploadCommand({ Bucket: 'uploads', Key: 'big.bin', ContentType: 'application/octet-stream' })) const uploadId = create.UploadId! const parts = [] as { ETag: string, PartNumber: number }[] for (let partNumber = 1; partNumber <= totalParts; partNumber++) { const body = getChunk(partNumber) // 读取分片 const resp = await s3.send(new UploadPartCommand({ Bucket: 'uploads', Key: 'big.bin', PartNumber: partNumber, UploadId: uploadId, Body: body })) parts.push({ ETag: resp.ETag!, PartNumber: partNumber }) } await s3.send(new CompleteMultipartUploadCommand({ Bucket: 'uploads', Key: 'big.bin', UploadId: uploadId, MultipartUpload: { Parts: parts } })) 断点续传要点记录 `uploadId` 与已成功分片的 `ETag/PartNumber`失败时重试对应分片并最终完成合并总结Multipart 能显著提升大文件上传效率并支持断点续传,需妥善记录分片进度以确保可靠性。

发表评论 取消回复