github.com/qiniu/go-sdk/v7@v7.27.0/storagev2/apis/resumable_upload_v2_upload_part/api.go (about) 1 // THIS FILE IS GENERATED BY api-generator, DO NOT EDIT DIRECTLY! 2 3 // 初始化一个 Multipart Upload 任务之后,可以根据指定的对象名称和 UploadId 来分片上传数据 4 package resumable_upload_v2_upload_part 5 6 import ( 7 "encoding/json" 8 9 io "github.com/qiniu/go-sdk/v7/internal/io" 10 errors "github.com/qiniu/go-sdk/v7/storagev2/errors" 11 uptoken "github.com/qiniu/go-sdk/v7/storagev2/uptoken" 12 ) 13 14 // 调用 API 所用的请求 15 type Request struct { 16 BucketName string // 存储空间名称 17 ObjectName *string // 对象名称 18 UploadId string // 在服务端申请的 Multipart Upload 任务 id 19 PartNumber int64 // 每一个上传的分片都有一个标识它的号码 20 Md5 string // 上传块内容的 md5 值,如果指定服务端会进行校验,不指定不校验 21 UpToken uptoken.Provider // 上传凭证,如果为空,则使用 HTTPClientOptions 中的 UpToken 22 Body io.ReadSeekCloser // 请求体 23 } 24 25 // 获取 API 所用的响应 26 type Response struct { 27 Etag string // 上传块内容的 etag,用来标识块,completeMultipartUpload API 调用的时候作为参数进行文件合成 28 Md5 string // 上传块内容的 MD5 值 29 } 30 31 // 返回本次上传的分片相关信息 32 type ( 33 NewPartInfo = Response 34 jsonResponse struct { 35 Etag string `json:"etag"` // 上传块内容的 etag,用来标识块,completeMultipartUpload API 调用的时候作为参数进行文件合成 36 Md5 string `json:"md5"` // 上传块内容的 MD5 值 37 } 38 ) 39 40 func (j *Response) MarshalJSON() ([]byte, error) { 41 if err := j.validate(); err != nil { 42 return nil, err 43 } 44 return json.Marshal(&jsonResponse{Etag: j.Etag, Md5: j.Md5}) 45 } 46 47 func (j *Response) UnmarshalJSON(data []byte) error { 48 var nj jsonResponse 49 if err := json.Unmarshal(data, &nj); err != nil { 50 return err 51 } 52 j.Etag = nj.Etag 53 j.Md5 = nj.Md5 54 return nil 55 } 56 57 func (j *Response) validate() error { 58 if j.Etag == "" { 59 return errors.MissingRequiredFieldError{Name: "Etag"} 60 } 61 if j.Md5 == "" { 62 return errors.MissingRequiredFieldError{Name: "Md5"} 63 } 64 return nil 65 }