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