功能说明
列出某个
UploadID 下已上传的所有分块(List Parts),常用于 完成分块上传 前核对分块信息,或在断点续传场景中确认已上传分块。对高性能桶发起请求时,SDK 通过 RapidCredentialTransport 自动完成会话鉴权。方法原型
func (s *ObjectService) ListParts(ctx context.Context, name, uploadID string, opt *ObjectListPartsOptions) (*ObjectListPartsResult, *Response, error)
参数说明
type ObjectListPartsOptions struct {EncodingType stringMaxParts stringPartNumberMarker string}
参数名称 | 参数描述 | 类型 | 是否必选 |
ctx | 请求上下文,用于控制超时与取消 | context.Context | 是 |
name | 对象键(Object Key) | string | 是 |
uploadID | 初始化分块上传返回的 UploadID | string | 是 |
opt | 列举选项,可为 nil | *ObjectListPartsOptions | 否 |
MaxParts | 单次最多返回的分块数量,取值范围 1~1000,默认 1000 | string | 否 |
PartNumberMarker | 从该分块编号之后开始列举,用于翻页 | string | 否 |
EncodingType | 返回结果的编码方式,可选值:url | string | 否 |
返回结果说明
type ObjectListPartsResult struct {Bucket stringKey stringUploadID stringMaxParts stringPartNumberMarker stringNextPartNumberMarker stringIsTruncated boolParts []Object}
参数名称 | 参数描述 | 类型 |
Bucket | 桶名 | string |
Key | 对象键 | string |
UploadID | 分块上传标识 | string |
MaxParts | 本次列举的最大数量 | string |
PartNumberMarker | 本次列举起始的分块编号标记 | string |
NextPartNumberMarker | 下一页列举的分块编号标记 | string |
IsTruncated | 结果是否被截断,为 true 时需翻页 | bool |
Parts | 已上传分块列表,每项含 PartNumber、ETag、Size、LastModified | []Object |
使用案例
package mainimport ("context""fmt""log""net/http""net/url""os""time""github.com/tencentyun/cos-go-sdk-v5")func main() {u, _ := url.Parse("https://examplebucket-x--1250000000.cosrapid.ap-guangzhou.myqcloud.com")b := &cos.BaseURL{BucketURL: u}base := &cos.AuthorizationTransport{SecretID: os.Getenv("SECRETID"),SecretKey: os.Getenv("SECRETKEY"),}c := cos.NewClient(b, &http.Client{Transport: cos.NewRapidCredentialTransport(base),Timeout: 30 * time.Second,})ctx := context.Background()name := "exampleobject.txt"uploadID := "exampleUploadId"res, _, err := c.Object.ListParts(ctx, name, uploadID, nil)if err != nil {log.Fatalf("ListParts failed: %v", err)}for _, p := range res.Parts {fmt.Printf("PartNumber: %d, ETag: %s, Size: %d, LastModified: %s\\n",p.PartNumber, p.ETag, p.Size, p.LastModified)}}
注意事项
IsTruncated 为 true 时表示还有更多分块,需用 NextPartNumberMarker 作为下一次的 PartNumberMarker 继续翻页。结果中的
PartNumber 与 ETag 可直接用于组装 完成分块上传 所需的 Parts 列表。若要列举桶内所有未完成的分块上传任务(而非某个 UploadID 的分块),请使用 列举分块上传。