分片上传接口 功能说明 复制分片操作可以从一个已存在的对象中拷贝指定分片的数据,当拷贝的对象大小超过5GB,必须使用复制分片操作完成对象的复制。除了最后一个分片外,每个拷贝分片的大小范围是[5MB,5GB]。在拷贝一个大对象之前,需要使用初始化分片上传操作获取一个upload id,在完成拷贝操作之后,需要使用合并分片操作组装已拷贝的分片成为一个对象。您可以使用UploadPartCopy复制一个分片。 代码示例 cpp bool S3Demo::UploadPartCopy() { const Aws::String bucketsource " "; const Aws::String bucketdest " "; const Aws::String objectsource " "; const Aws::String objectdest " "; Aws::String copysource bucketsource + "/" + objectsource; Aws::String uploadid " "; Aws::String copysourcerange "bytes05242879"; int partnum 1; Aws::S3::Model::UploadPartCopyRequest request; request.SetBucket(bucketdest); request.SetKey(objectdest); request.SetCopySource(copysource); request.SetUploadId(uploadid); request.SetPartNumber(partnum); request.SetCopySourceRange(copysourcerange); Aws::S3::Model::UploadPartCopyOutcome outcome s3client>UploadPartCopy(request); if (outcome.IsSuccess()) { std::cout << "UploadPartCopy " << objectdest << ":" << partnum << ":" << outcome.GetResult().GetCopyPartResult().GetETag() << " success"; return true; } else { Aws::S3::S3Error err outcome.GetError(); std::cout << "Error: UploadPartCopy: " << (int)err.GetResponseCode() << ", Message:" << err.GetMessage() << std::endl; return false; } } 请求参数 参数 类型 说明 是否必要 Bucket string 桶名称 是 Key string 对象key 是 PartNumber int 当前分片号码 是 UploadId string 通过创建上传任务接口获取到的任务Id 是 CopySource string URL格式的拷贝对象数据来源,包含了桶名称和对象key的信息,二者之间使用正斜杠(/)分割 是 CopySourceRange string 指定本次分片拷贝的数据范围,必须是"bytesfirstlast"的格式,例如"bytes09"表示拷贝原对象中前10字节的数据,只有当拷贝的分片大小大于5MB的时候有效 否
来自: