github.com/qiniu/go-sdk/v7@v7.27.0/storagev2/apis/batch_ops/api.go (about) 1 // THIS FILE IS GENERATED BY api-generator, DO NOT EDIT DIRECTLY! 2 3 // 批量操作意指在单一请求中执行多次(最大限制1000次) 查询元信息、修改元信息、移动、复制、删除、修改状态、修改存储类型、修改生命周期和解冻操作,极大提高对象管理效率。其中,解冻操作仅针对归档存储文件有效 4 package batch_ops 5 6 import ( 7 "encoding/json" 8 9 credentials "github.com/qiniu/go-sdk/v7/storagev2/credentials" 10 errors "github.com/qiniu/go-sdk/v7/storagev2/errors" 11 ) 12 13 // 调用 API 所用的请求 14 type Request struct { 15 Credentials credentials.CredentialsProvider // 鉴权参数,用于生成鉴权凭证,如果为空,则使用 HTTPClientOptions 中的 CredentialsProvider 16 Operations []string // 单一对象管理指令 17 } 18 19 // 获取 API 所用的响应 20 type Response struct { 21 OperationResponses OperationResponses // 所有管理指令的响应信息 22 } 23 24 // 每个分片的大小 25 type PartSizes = []int64 26 27 // 响应数据 28 type Data struct { 29 Error string // 管理指令的错误信息,仅在发生错误时才返回 30 Size int64 // 对象大小,单位为字节,仅对 stat 指令才有效 31 Hash string // 对象哈希值,仅对 stat 指令才有效 32 MimeType string // 对象 MIME 类型,仅对 stat 指令才有效 33 Type int64 // 对象存储类型,`0` 表示普通存储,`1` 表示低频存储,`2` 表示归档存储,仅对 stat 指令才有效 34 PutTime int64 // 文件上传时间,UNIX 时间戳格式,单位为 100 纳秒,仅对 stat 指令才有效 35 EndUser string // 资源内容的唯一属主标识 36 RestoringStatus int64 // 归档存储文件的解冻状态,`2` 表示解冻完成,`1` 表示解冻中;归档文件冻结时,不返回该字段,仅对 stat 指令才有效 37 Status int64 // 文件状态。`1` 表示禁用;只有禁用状态的文件才会返回该字段,仅对 stat 指令才有效 38 Md5 string // 对象 MD5 值,只有通过直传文件和追加文件 API 上传的文件,服务端确保有该字段返回,仅对 stat 指令才有效 39 ExpirationTime int64 // 文件过期删除日期,UNIX 时间戳格式,文件在设置过期时间后才会返回该字段,仅对 stat 指令才有效 40 TransitionToIaTime int64 // 文件生命周期中转为低频存储的日期,UNIX 时间戳格式,文件在设置转低频后才会返回该字段,仅对 stat 指令才有效 41 TransitionToArchiveTime int64 // 文件生命周期中转为归档存储的日期,UNIX 时间戳格式,文件在设置转归档后才会返回该字段,仅对 stat 指令才有效 42 TransitionToDeepArchiveTime int64 // 文件生命周期中转为深度归档存储的日期,UNIX 时间戳格式,文件在设置转归档后才会返回该字段,仅对 stat 指令才有效 43 TransitionToArchiveIrTime int64 // 文件生命周期中转为归档直读存储的日期,UNIX 时间戳格式,文件在设置转归档直读后才会返回该字段,仅对 stat 指令才有效 44 Metadata map[string]string // 对象存储元信息 45 Parts PartSizes // 每个分片的大小,如没有指定 need_parts 参数则不返回 46 } 47 48 // 管理指令的响应数据 49 type ( 50 OperationResponseData = Data 51 jsonData struct { 52 Error string `json:"error,omitempty"` // 管理指令的错误信息,仅在发生错误时才返回 53 Size int64 `json:"fsize,omitempty"` // 对象大小,单位为字节,仅对 stat 指令才有效 54 Hash string `json:"hash,omitempty"` // 对象哈希值,仅对 stat 指令才有效 55 MimeType string `json:"mimeType,omitempty"` // 对象 MIME 类型,仅对 stat 指令才有效 56 Type int64 `json:"type,omitempty"` // 对象存储类型,`0` 表示普通存储,`1` 表示低频存储,`2` 表示归档存储,仅对 stat 指令才有效 57 PutTime int64 `json:"putTime,omitempty"` // 文件上传时间,UNIX 时间戳格式,单位为 100 纳秒,仅对 stat 指令才有效 58 EndUser string `json:"endUser,omitempty"` // 资源内容的唯一属主标识 59 RestoringStatus int64 `json:"restoreStatus,omitempty"` // 归档存储文件的解冻状态,`2` 表示解冻完成,`1` 表示解冻中;归档文件冻结时,不返回该字段,仅对 stat 指令才有效 60 Status int64 `json:"status,omitempty"` // 文件状态。`1` 表示禁用;只有禁用状态的文件才会返回该字段,仅对 stat 指令才有效 61 Md5 string `json:"md5,omitempty"` // 对象 MD5 值,只有通过直传文件和追加文件 API 上传的文件,服务端确保有该字段返回,仅对 stat 指令才有效 62 ExpirationTime int64 `json:"expiration,omitempty"` // 文件过期删除日期,UNIX 时间戳格式,文件在设置过期时间后才会返回该字段,仅对 stat 指令才有效 63 TransitionToIaTime int64 `json:"transitionToIA,omitempty"` // 文件生命周期中转为低频存储的日期,UNIX 时间戳格式,文件在设置转低频后才会返回该字段,仅对 stat 指令才有效 64 TransitionToArchiveTime int64 `json:"transitionToARCHIVE,omitempty"` // 文件生命周期中转为归档存储的日期,UNIX 时间戳格式,文件在设置转归档后才会返回该字段,仅对 stat 指令才有效 65 TransitionToDeepArchiveTime int64 `json:"transitionToDeepArchive,omitempty"` // 文件生命周期中转为深度归档存储的日期,UNIX 时间戳格式,文件在设置转归档后才会返回该字段,仅对 stat 指令才有效 66 TransitionToArchiveIrTime int64 `json:"transitionToArchiveIR,omitempty"` // 文件生命周期中转为归档直读存储的日期,UNIX 时间戳格式,文件在设置转归档直读后才会返回该字段,仅对 stat 指令才有效 67 Metadata map[string]string `json:"x-qn-meta,omitempty"` // 对象存储元信息 68 Parts PartSizes `json:"parts,omitempty"` // 每个分片的大小,如没有指定 need_parts 参数则不返回 69 } 70 ) 71 72 func (j *Data) MarshalJSON() ([]byte, error) { 73 if err := j.validate(); err != nil { 74 return nil, err 75 } 76 return json.Marshal(&jsonData{Error: j.Error, Size: j.Size, Hash: j.Hash, MimeType: j.MimeType, Type: j.Type, PutTime: j.PutTime, EndUser: j.EndUser, RestoringStatus: j.RestoringStatus, Status: j.Status, Md5: j.Md5, ExpirationTime: j.ExpirationTime, TransitionToIaTime: j.TransitionToIaTime, TransitionToArchiveTime: j.TransitionToArchiveTime, TransitionToDeepArchiveTime: j.TransitionToDeepArchiveTime, TransitionToArchiveIrTime: j.TransitionToArchiveIrTime, Metadata: j.Metadata, Parts: j.Parts}) 77 } 78 79 func (j *Data) UnmarshalJSON(data []byte) error { 80 var nj jsonData 81 if err := json.Unmarshal(data, &nj); err != nil { 82 return err 83 } 84 j.Error = nj.Error 85 j.Size = nj.Size 86 j.Hash = nj.Hash 87 j.MimeType = nj.MimeType 88 j.Type = nj.Type 89 j.PutTime = nj.PutTime 90 j.EndUser = nj.EndUser 91 j.RestoringStatus = nj.RestoringStatus 92 j.Status = nj.Status 93 j.Md5 = nj.Md5 94 j.ExpirationTime = nj.ExpirationTime 95 j.TransitionToIaTime = nj.TransitionToIaTime 96 j.TransitionToArchiveTime = nj.TransitionToArchiveTime 97 j.TransitionToDeepArchiveTime = nj.TransitionToDeepArchiveTime 98 j.TransitionToArchiveIrTime = nj.TransitionToArchiveIrTime 99 j.Metadata = nj.Metadata 100 j.Parts = nj.Parts 101 return nil 102 } 103 104 func (j *Data) validate() error { 105 return nil 106 } 107 108 // 每个管理指令的响应信息 109 type OperationResponse struct { 110 Code int64 // 响应状态码 111 Data OperationResponseData // 响应数据 112 } 113 type jsonOperationResponse struct { 114 Code int64 `json:"code"` // 响应状态码 115 Data OperationResponseData `json:"data,omitempty"` // 响应数据 116 } 117 118 func (j *OperationResponse) MarshalJSON() ([]byte, error) { 119 if err := j.validate(); err != nil { 120 return nil, err 121 } 122 return json.Marshal(&jsonOperationResponse{Code: j.Code, Data: j.Data}) 123 } 124 125 func (j *OperationResponse) UnmarshalJSON(data []byte) error { 126 var nj jsonOperationResponse 127 if err := json.Unmarshal(data, &nj); err != nil { 128 return err 129 } 130 j.Code = nj.Code 131 j.Data = nj.Data 132 return nil 133 } 134 135 func (j *OperationResponse) validate() error { 136 if j.Code == 0 { 137 return errors.MissingRequiredFieldError{Name: "Code"} 138 } 139 return nil 140 } 141 142 // 所有管理指令的响应信息 143 type OperationResponses []OperationResponse 144 145 func (j *Response) MarshalJSON() ([]byte, error) { 146 return json.Marshal(j.OperationResponses) 147 } 148 149 func (j *Response) UnmarshalJSON(data []byte) error { 150 var array OperationResponses 151 if err := json.Unmarshal(data, &array); err != nil { 152 return err 153 } 154 j.OperationResponses = array 155 return nil 156 }