github.com/qiniu/go-sdk/v7@v7.27.0/storagev2/apis/stat_object/api.go (about) 1 // THIS FILE IS GENERATED BY api-generator, DO NOT EDIT DIRECTLY! 2 3 // 仅获取对象的元信息,不返回对象的内容 4 package stat_object 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 Entry string // 指定目标对象空间与目标对象名称,格式为 <目标对象空间>:<目标对象名称> 16 NeedParts bool // 如果文件是通过分片上传的,是否返回对应的分片信息 17 Credentials credentials.CredentialsProvider // 鉴权参数,用于生成鉴权凭证,如果为空,则使用 HTTPClientOptions 中的 CredentialsProvider 18 } 19 20 // 获取 API 所用的响应 21 type Response struct { 22 Size int64 // 对象大小,单位为字节 23 Hash string // 对象哈希值 24 MimeType string // 对象 MIME 类型 25 Type int64 // 对象存储类型,`0` 表示普通存储,`1` 表示低频存储,`2` 表示归档存储 26 PutTime int64 // 文件上传时间,UNIX 时间戳格式,单位为 100 纳秒 27 EndUser string // 资源内容的唯一属主标识 28 RestoringStatus int64 // 归档存储文件的解冻状态,`2` 表示解冻完成,`1` 表示解冻中;归档文件冻结时,不返回该字段 29 Status int64 // 文件状态。`1` 表示禁用;只有禁用状态的文件才会返回该字段 30 Md5 string // 对象 MD5 值,只有通过直传文件和追加文件 API 上传的文件,服务端确保有该字段返回 31 ExpirationTime int64 // 文件过期删除日期,UNIX 时间戳格式,文件在设置过期时间后才会返回该字段 32 TransitionToIaTime int64 // 文件生命周期中转为低频存储的日期,UNIX 时间戳格式,文件在设置转低频后才会返回该字段 33 TransitionToArchiveTime int64 // 文件生命周期中转为归档存储的日期,UNIX 时间戳格式,文件在设置转归档后才会返回该字段 34 TransitionToDeepArchiveTime int64 // 文件生命周期中转为深度归档存储的日期,UNIX 时间戳格式,文件在设置转归档后才会返回该字段 35 TransitionToArchiveIrTime int64 // 文件生命周期中转为归档直读存储的日期,UNIX 时间戳格式,文件在设置转归档直读后才会返回该字段 36 Metadata map[string]string // 对象存储元信息 37 Parts PartSizes // 每个分片的大小,如没有指定 need_parts 参数则不返回 38 } 39 40 // 每个分片的大小 41 type PartSizes = []int64 42 43 // 文件元信息 44 type ( 45 ObjectMetadata = Response 46 jsonResponse struct { 47 Size int64 `json:"fsize,omitempty"` // 对象大小,单位为字节 48 Hash string `json:"hash"` // 对象哈希值 49 MimeType string `json:"mimeType"` // 对象 MIME 类型 50 Type int64 `json:"type,omitempty"` // 对象存储类型,`0` 表示普通存储,`1` 表示低频存储,`2` 表示归档存储 51 PutTime int64 `json:"putTime"` // 文件上传时间,UNIX 时间戳格式,单位为 100 纳秒 52 EndUser string `json:"endUser,omitempty"` // 资源内容的唯一属主标识 53 RestoringStatus int64 `json:"restoreStatus,omitempty"` // 归档存储文件的解冻状态,`2` 表示解冻完成,`1` 表示解冻中;归档文件冻结时,不返回该字段 54 Status int64 `json:"status,omitempty"` // 文件状态。`1` 表示禁用;只有禁用状态的文件才会返回该字段 55 Md5 string `json:"md5,omitempty"` // 对象 MD5 值,只有通过直传文件和追加文件 API 上传的文件,服务端确保有该字段返回 56 ExpirationTime int64 `json:"expiration,omitempty"` // 文件过期删除日期,UNIX 时间戳格式,文件在设置过期时间后才会返回该字段 57 TransitionToIaTime int64 `json:"transitionToIA,omitempty"` // 文件生命周期中转为低频存储的日期,UNIX 时间戳格式,文件在设置转低频后才会返回该字段 58 TransitionToArchiveTime int64 `json:"transitionToARCHIVE,omitempty"` // 文件生命周期中转为归档存储的日期,UNIX 时间戳格式,文件在设置转归档后才会返回该字段 59 TransitionToDeepArchiveTime int64 `json:"transitionToDeepArchive,omitempty"` // 文件生命周期中转为深度归档存储的日期,UNIX 时间戳格式,文件在设置转归档后才会返回该字段 60 TransitionToArchiveIrTime int64 `json:"transitionToArchiveIR,omitempty"` // 文件生命周期中转为归档直读存储的日期,UNIX 时间戳格式,文件在设置转归档直读后才会返回该字段 61 Metadata map[string]string `json:"x-qn-meta,omitempty"` // 对象存储元信息 62 Parts PartSizes `json:"parts,omitempty"` // 每个分片的大小,如没有指定 need_parts 参数则不返回 63 } 64 ) 65 66 func (j *Response) MarshalJSON() ([]byte, error) { 67 if err := j.validate(); err != nil { 68 return nil, err 69 } 70 return json.Marshal(&jsonResponse{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}) 71 } 72 73 func (j *Response) UnmarshalJSON(data []byte) error { 74 var nj jsonResponse 75 if err := json.Unmarshal(data, &nj); err != nil { 76 return err 77 } 78 j.Size = nj.Size 79 j.Hash = nj.Hash 80 j.MimeType = nj.MimeType 81 j.Type = nj.Type 82 j.PutTime = nj.PutTime 83 j.EndUser = nj.EndUser 84 j.RestoringStatus = nj.RestoringStatus 85 j.Status = nj.Status 86 j.Md5 = nj.Md5 87 j.ExpirationTime = nj.ExpirationTime 88 j.TransitionToIaTime = nj.TransitionToIaTime 89 j.TransitionToArchiveTime = nj.TransitionToArchiveTime 90 j.TransitionToDeepArchiveTime = nj.TransitionToDeepArchiveTime 91 j.TransitionToArchiveIrTime = nj.TransitionToArchiveIrTime 92 j.Metadata = nj.Metadata 93 j.Parts = nj.Parts 94 return nil 95 } 96 97 func (j *Response) validate() error { 98 if j.Hash == "" { 99 return errors.MissingRequiredFieldError{Name: "Hash"} 100 } 101 if j.MimeType == "" { 102 return errors.MissingRequiredFieldError{Name: "MimeType"} 103 } 104 if j.PutTime == 0 { 105 return errors.MissingRequiredFieldError{Name: "PutTime"} 106 } 107 return nil 108 }