github.com/qiniu/go-sdk/v7@v7.27.0/storagev2/apis/get_bucket_infos/api.go (about) 1 // THIS FILE IS GENERATED BY api-generator, DO NOT EDIT DIRECTLY! 2 3 // 获取用户所有存储空间信息 4 package get_bucket_infos 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 Region string // 区域 ID 16 Statistics bool // 是否返回存储空间的实时统计信息 17 Credentials credentials.CredentialsProvider // 鉴权参数,用于生成鉴权凭证,如果为空,则使用 HTTPClientOptions 中的 CredentialsProvider 18 } 19 20 // 获取 API 所用的响应 21 type Response struct { 22 AllBucketInfosV2 AllBucketInfosV2 // 所有存储空间信息 23 } 24 25 // 防盗链 Referer 白名单 26 type AllowedReferer = []string 27 28 // 防盗链 Referer 黑名单 29 type ( 30 BlockedReferer = []string 31 BucketInfo struct { 32 Source string // 镜像回源地址,可以有多个,以 `;` 分隔 33 Host string // 请求镜像地址时携带的 `Host` 头部 34 Expires int64 // 镜像回源地址过期时长 35 Protected int64 // 是否开启了原图保护 36 Private int64 // 是否是私有空间 37 NoIndexPage int64 // 是否禁用 index.html(或 index.htm) 页面 38 MaxAge int64 // 客户端缓存过期时长 39 Separator string // 图片样式分隔符,可能返回多个 40 Styles map[string]string // 图片样式,键表示图片样式命令名字,值表示图片样式命令内容 41 AntiLeechMode int64 // 防盗链模式,1:表示设置 Referer 白名单; 2:表示设置 Referer 黑名单 42 TokenAntiLeech int64 // Token 防盗链模式, 0:表示关闭,1:表示打开 43 ReferWl AllowedReferer // 防盗链 Referer 白名单列表 44 ReferBl BlockedReferer // 防盗链 Referer 黑名单列表 45 SourceEnabled bool // 在源站支持的情况下是否开启源站的 Referer 防盗链 46 NoReferer bool // 0:表示不允许空 Refer 访问; 1:表示允许空 Refer 访问 47 MacKey string // 第一个 MacKey,Index 为 1,用于防盗链 Token 的生成 48 MacKey2 string // 第二个 MacKey,Index 为 2,用于防盗链 Token 的生成 49 Zone string // 存储区域,兼容保留 50 Region string // 存储区域 51 Remark string // 空间备注信息 52 CreatedAt string // 空间创建时间 53 } 54 ) 55 56 // 存储空间信息 57 type ( 58 BucketInfoV2 = BucketInfo 59 jsonBucketInfo struct { 60 Source string `json:"source"` // 镜像回源地址,可以有多个,以 `;` 分隔 61 Host string `json:"host"` // 请求镜像地址时携带的 `Host` 头部 62 Expires int64 `json:"expires"` // 镜像回源地址过期时长 63 Protected int64 `json:"protected"` // 是否开启了原图保护 64 Private int64 `json:"private"` // 是否是私有空间 65 NoIndexPage int64 `json:"no_index_page"` // 是否禁用 index.html(或 index.htm) 页面 66 MaxAge int64 `json:"max_age"` // 客户端缓存过期时长 67 Separator string `json:"separator"` // 图片样式分隔符,可能返回多个 68 Styles map[string]string `json:"styles"` // 图片样式,键表示图片样式命令名字,值表示图片样式命令内容 69 AntiLeechMode int64 `json:"anti_leech_mode"` // 防盗链模式,1:表示设置 Referer 白名单; 2:表示设置 Referer 黑名单 70 TokenAntiLeech int64 `json:"token_anti_leech_mode"` // Token 防盗链模式, 0:表示关闭,1:表示打开 71 ReferWl AllowedReferer `json:"refer_wl"` // 防盗链 Referer 白名单列表 72 ReferBl BlockedReferer `json:"refer_bl"` // 防盗链 Referer 黑名单列表 73 SourceEnabled bool `json:"source_enabled"` // 在源站支持的情况下是否开启源站的 Referer 防盗链 74 NoReferer bool `json:"allow_empty_referer"` // 0:表示不允许空 Refer 访问; 1:表示允许空 Refer 访问 75 MacKey string `json:"mac_key"` // 第一个 MacKey,Index 为 1,用于防盗链 Token 的生成 76 MacKey2 string `json:"mac_key2"` // 第二个 MacKey,Index 为 2,用于防盗链 Token 的生成 77 Zone string `json:"zone"` // 存储区域,兼容保留 78 Region string `json:"region"` // 存储区域 79 Remark string `json:"remark"` // 空间备注信息 80 CreatedAt string `json:"ctime"` // 空间创建时间 81 } 82 ) 83 84 func (j *BucketInfo) MarshalJSON() ([]byte, error) { 85 if err := j.validate(); err != nil { 86 return nil, err 87 } 88 return json.Marshal(&jsonBucketInfo{Source: j.Source, Host: j.Host, Expires: j.Expires, Protected: j.Protected, Private: j.Private, NoIndexPage: j.NoIndexPage, MaxAge: j.MaxAge, Separator: j.Separator, Styles: j.Styles, AntiLeechMode: j.AntiLeechMode, TokenAntiLeech: j.TokenAntiLeech, ReferWl: j.ReferWl, ReferBl: j.ReferBl, SourceEnabled: j.SourceEnabled, NoReferer: j.NoReferer, MacKey: j.MacKey, MacKey2: j.MacKey2, Zone: j.Zone, Region: j.Region, Remark: j.Remark, CreatedAt: j.CreatedAt}) 89 } 90 91 func (j *BucketInfo) UnmarshalJSON(data []byte) error { 92 var nj jsonBucketInfo 93 if err := json.Unmarshal(data, &nj); err != nil { 94 return err 95 } 96 j.Source = nj.Source 97 j.Host = nj.Host 98 j.Expires = nj.Expires 99 j.Protected = nj.Protected 100 j.Private = nj.Private 101 j.NoIndexPage = nj.NoIndexPage 102 j.MaxAge = nj.MaxAge 103 j.Separator = nj.Separator 104 j.Styles = nj.Styles 105 j.AntiLeechMode = nj.AntiLeechMode 106 j.TokenAntiLeech = nj.TokenAntiLeech 107 j.ReferWl = nj.ReferWl 108 j.ReferBl = nj.ReferBl 109 j.SourceEnabled = nj.SourceEnabled 110 j.NoReferer = nj.NoReferer 111 j.MacKey = nj.MacKey 112 j.MacKey2 = nj.MacKey2 113 j.Zone = nj.Zone 114 j.Region = nj.Region 115 j.Remark = nj.Remark 116 j.CreatedAt = nj.CreatedAt 117 return nil 118 } 119 120 func (j *BucketInfo) validate() error { 121 if j.Source == "" { 122 return errors.MissingRequiredFieldError{Name: "Source"} 123 } 124 if j.Host == "" { 125 return errors.MissingRequiredFieldError{Name: "Host"} 126 } 127 if j.Expires == 0 { 128 return errors.MissingRequiredFieldError{Name: "Expires"} 129 } 130 if j.Protected == 0 { 131 return errors.MissingRequiredFieldError{Name: "Protected"} 132 } 133 if j.Private == 0 { 134 return errors.MissingRequiredFieldError{Name: "Private"} 135 } 136 if j.NoIndexPage == 0 { 137 return errors.MissingRequiredFieldError{Name: "NoIndexPage"} 138 } 139 if j.MaxAge == 0 { 140 return errors.MissingRequiredFieldError{Name: "MaxAge"} 141 } 142 if j.Separator == "" { 143 return errors.MissingRequiredFieldError{Name: "Separator"} 144 } 145 if j.Styles == nil { 146 return errors.MissingRequiredFieldError{Name: "Styles"} 147 } 148 if j.AntiLeechMode == 0 { 149 return errors.MissingRequiredFieldError{Name: "AntiLeechMode"} 150 } 151 if j.TokenAntiLeech == 0 { 152 return errors.MissingRequiredFieldError{Name: "TokenAntiLeech"} 153 } 154 if len(j.ReferWl) == 0 { 155 return errors.MissingRequiredFieldError{Name: "ReferWl"} 156 } 157 if len(j.ReferBl) == 0 { 158 return errors.MissingRequiredFieldError{Name: "ReferBl"} 159 } 160 if j.MacKey == "" { 161 return errors.MissingRequiredFieldError{Name: "MacKey"} 162 } 163 if j.MacKey2 == "" { 164 return errors.MissingRequiredFieldError{Name: "MacKey2"} 165 } 166 if j.Zone == "" { 167 return errors.MissingRequiredFieldError{Name: "Zone"} 168 } 169 if j.Region == "" { 170 return errors.MissingRequiredFieldError{Name: "Region"} 171 } 172 if j.Remark == "" { 173 return errors.MissingRequiredFieldError{Name: "Remark"} 174 } 175 if j.CreatedAt == "" { 176 return errors.MissingRequiredFieldError{Name: "CreatedAt"} 177 } 178 return nil 179 } 180 181 // 所有存储空间信息 182 type BucketInfosV2 struct { 183 Name string // 存储空间名称 184 BucketInfo BucketInfoV2 185 } 186 type jsonBucketInfosV2 struct { 187 Name string `json:"name"` // 存储空间名称 188 BucketInfo BucketInfoV2 `json:"info"` 189 } 190 191 func (j *BucketInfosV2) MarshalJSON() ([]byte, error) { 192 if err := j.validate(); err != nil { 193 return nil, err 194 } 195 return json.Marshal(&jsonBucketInfosV2{Name: j.Name, BucketInfo: j.BucketInfo}) 196 } 197 198 func (j *BucketInfosV2) UnmarshalJSON(data []byte) error { 199 var nj jsonBucketInfosV2 200 if err := json.Unmarshal(data, &nj); err != nil { 201 return err 202 } 203 j.Name = nj.Name 204 j.BucketInfo = nj.BucketInfo 205 return nil 206 } 207 208 func (j *BucketInfosV2) validate() error { 209 if j.Name == "" { 210 return errors.MissingRequiredFieldError{Name: "Name"} 211 } 212 if err := j.BucketInfo.validate(); err != nil { 213 return err 214 } 215 return nil 216 } 217 218 // 所有存储空间信息 219 type AllBucketInfosV2 []BucketInfosV2 220 221 func (j *Response) MarshalJSON() ([]byte, error) { 222 return json.Marshal(j.AllBucketInfosV2) 223 } 224 225 func (j *Response) UnmarshalJSON(data []byte) error { 226 var array AllBucketInfosV2 227 if err := json.Unmarshal(data, &array); err != nil { 228 return err 229 } 230 j.AllBucketInfosV2 = array 231 return nil 232 }