@@ -229,6 +229,44 @@ func (j *ApiDomains) validate() error {
229
229
return nil
230
230
}
231
231
232
+ // 主 S3 域名列表
233
+ type PreferedS3Domains = []string
234
+
235
+ // S3 域名
236
+ type S3Domains struct {
237
+ RegionAlias string // S3 Region
238
+ PreferedApiDomains PreferedS3Domains // 主 S3 域名列表
239
+ }
240
+ type jsonS3Domains struct {
241
+ RegionAlias string `json:"region_alias"` // S3 Region
242
+ PreferedApiDomains PreferedS3Domains `json:"domains"` // 主 S3 域名列表
243
+ }
244
+
245
+ func (j * S3Domains ) MarshalJSON () ([]byte , error ) {
246
+ if err := j .validate (); err != nil {
247
+ return nil , err
248
+ }
249
+ return json .Marshal (& jsonS3Domains {RegionAlias : j .RegionAlias , PreferedApiDomains : j .PreferedApiDomains })
250
+ }
251
+ func (j * S3Domains ) UnmarshalJSON (data []byte ) error {
252
+ var nj jsonS3Domains
253
+ if err := json .Unmarshal (data , & nj ); err != nil {
254
+ return err
255
+ }
256
+ j .RegionAlias = nj .RegionAlias
257
+ j .PreferedApiDomains = nj .PreferedApiDomains
258
+ return nil
259
+ }
260
+ func (j * S3Domains ) validate () error {
261
+ if j .RegionAlias == "" {
262
+ return errors.MissingRequiredFieldError {Name : "RegionAlias" }
263
+ }
264
+ if len (j .PreferedApiDomains ) == 0 {
265
+ return errors.MissingRequiredFieldError {Name : "PreferedApiDomains" }
266
+ }
267
+ return nil
268
+ }
269
+
232
270
// 存储空间服务域名
233
271
type BucketQueryHost struct {
234
272
RegionId string // 区域 ID
@@ -239,6 +277,7 @@ type BucketQueryHost struct {
239
277
RsDomains RsDomains // 对象管理域名
240
278
RsfDomains RsfDomains // 对象列举域名
241
279
ApiDomains ApiDomains // API 域名
280
+ S3Domains S3Domains // S3 域名
242
281
}
243
282
type jsonBucketQueryHost struct {
244
283
RegionId string `json:"region"` // 区域 ID
@@ -249,13 +288,14 @@ type jsonBucketQueryHost struct {
249
288
RsDomains RsDomains `json:"rs"` // 对象管理域名
250
289
RsfDomains RsfDomains `json:"rsf"` // 对象列举域名
251
290
ApiDomains ApiDomains `json:"api"` // API 域名
291
+ S3Domains S3Domains `json:"s3"` // S3 域名
252
292
}
253
293
254
294
func (j * BucketQueryHost ) MarshalJSON () ([]byte , error ) {
255
295
if err := j .validate (); err != nil {
256
296
return nil , err
257
297
}
258
- return json .Marshal (& jsonBucketQueryHost {RegionId : j .RegionId , TimeToLive : j .TimeToLive , UpDomains : j .UpDomains , IoDomains : j .IoDomains , IoSrcDomains : j .IoSrcDomains , RsDomains : j .RsDomains , RsfDomains : j .RsfDomains , ApiDomains : j .ApiDomains })
298
+ return json .Marshal (& jsonBucketQueryHost {RegionId : j .RegionId , TimeToLive : j .TimeToLive , UpDomains : j .UpDomains , IoDomains : j .IoDomains , IoSrcDomains : j .IoSrcDomains , RsDomains : j .RsDomains , RsfDomains : j .RsfDomains , ApiDomains : j .ApiDomains , S3Domains : j . S3Domains })
259
299
}
260
300
func (j * BucketQueryHost ) UnmarshalJSON (data []byte ) error {
261
301
var nj jsonBucketQueryHost
@@ -270,6 +310,7 @@ func (j *BucketQueryHost) UnmarshalJSON(data []byte) error {
270
310
j .RsDomains = nj .RsDomains
271
311
j .RsfDomains = nj .RsfDomains
272
312
j .ApiDomains = nj .ApiDomains
313
+ j .S3Domains = nj .S3Domains
273
314
return nil
274
315
}
275
316
func (j * BucketQueryHost ) validate () error {
@@ -294,6 +335,9 @@ func (j *BucketQueryHost) validate() error {
294
335
if err := j .ApiDomains .validate (); err != nil {
295
336
return err
296
337
}
338
+ if err := j .S3Domains .validate (); err != nil {
339
+ return err
340
+ }
297
341
return nil
298
342
}
299
343
0 commit comments