分片上传接口 代码示例 plaintext var ( sourceBucket " " //拷贝对象的来源 key " " //拷贝对象的key destinationBucket " " //目标桶名字 ) func UploadPartCopy(svc s3.S3) { var MB int64 MB 1024 1024 // 获取被拷贝对象大小 headObjectOutput, err : svc.HeadObject(&s3.HeadObjectInput{ Bucket: aws.String(sourceBucket), Key: aws.String(key), }) if err ! nil { fmt.Printf("fail to head object. %vn", err) return } objectSize : headObjectOutput.ContentLength // UploadPartCopy操作的对象必须大于5MB if objectSize "), Key: aws.String(" "), }) if err ! nil { fmt.Printf("fail to create multipart upload. %vn", err) return } uploadId : createMultipartUploadOutput.UploadId // 分片复制 uploadPartCopyInput : &s3.UploadPartCopyInput{ Bucket: aws.String(" "), CopySource: aws.String(" "), Key: aws.String(" "), PartNumber: aws.Int64(1), UploadId: uploadId, } req, uploadPartCopyOutput : svc.UploadPartCopyRequest(uploadPartCopyInput) err req.Send() if err ! nil { fmt.Printf("fail to copy upload part. %vn", err) } else { fmt.Print(uploadPartCopyOutput) } }
来自: