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  }