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  }