Skip to content

Commit 219b063

Browse files
committed
now all apis are generated by api-generated, includes the unrecommanded ones
1 parent 2874b3c commit 219b063

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

49 files changed

+4466
-742
lines changed

storage/bucket.go

+54-66
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ import (
2020
"github.com/qiniu/go-sdk/v7/internal/clientv2"
2121
"github.com/qiniu/go-sdk/v7/storagev2/apis"
2222
"github.com/qiniu/go-sdk/v7/storagev2/apis/batch_ops"
23+
"github.com/qiniu/go-sdk/v7/storagev2/apis/get_bucket_domains_v3"
2324
"github.com/qiniu/go-sdk/v7/storagev2/backoff"
2425
"github.com/qiniu/go-sdk/v7/storagev2/chooser"
2526
"github.com/qiniu/go-sdk/v7/storagev2/http_client"
@@ -917,19 +918,31 @@ type DomainInfo struct {
917918

918919
// ListBucketDomains 返回绑定在存储空间中的域名信息
919920
func (m *BucketManager) ListBucketDomains(bucket string) (info []DomainInfo, err error) {
920-
reqURL := fmt.Sprintf("%s/v3/domains?tbl=%s", getUcHost(m.Cfg.UseHTTPS), bucket)
921-
c, err := m.getUCClient()
921+
toDomainInfo := func(info *get_bucket_domains_v3.DomainInfo) DomainInfo {
922+
return DomainInfo{
923+
Domain: info.Domain,
924+
Tbl: info.Bucket,
925+
Owner: int(info.OwnerId),
926+
Refresh: info.AutoRefresh,
927+
Ctime: int(info.CreatedTime),
928+
Utime: int(info.UpdatedTime),
929+
}
930+
}
931+
response, err := m.apiClient.GetBucketDomainsV3(
932+
context.Background(),
933+
&apis.GetBucketDomainsV3Request{
934+
BucketName: bucket,
935+
},
936+
m.makeRequestOptions(),
937+
)
922938
if err != nil {
923-
return
939+
return nil, err
924940
}
925-
err = clientv2.DoAndDecodeJsonResponse(c, clientv2.RequestParams{
926-
Context: context.Background(),
927-
Method: clientv2.RequestMethodGet,
928-
Url: reqURL,
929-
Header: nil,
930-
GetBody: nil,
931-
}, &info)
932-
return info, err
941+
domainInfos := make([]DomainInfo, 0, len(response.DomainInfos))
942+
for _, domainInfo := range response.DomainInfos {
943+
domainInfos = append(domainInfos, toDomainInfo(&domainInfo))
944+
}
945+
return domainInfos, nil
933946
}
934947

935948
// Prefetch 用来同步镜像空间的资源和镜像源资源内容
@@ -945,52 +958,42 @@ func (m *BucketManager) Prefetch(bucket, key string) error {
945958
}
946959

947960
// SetImage 用来设置空间镜像源
948-
func (m *BucketManager) SetImage(siteURL, bucket string) (err error) {
949-
reqURL := fmt.Sprintf("%s%s", getUcHost(m.Cfg.UseHTTPS), uriSetImage(siteURL, bucket))
950-
c, err := m.getUCClient()
951-
if err != nil {
952-
return
953-
}
954-
return clientv2.DoAndDecodeJsonResponse(c, clientv2.RequestParams{
955-
Context: context.Background(),
956-
Method: clientv2.RequestMethodPost,
957-
Url: reqURL,
958-
Header: nil,
959-
GetBody: nil,
960-
}, nil)
961+
func (m *BucketManager) SetImage(siteURL, bucket string) error {
962+
_, err := m.apiClient.SetBucketImage(
963+
context.Background(),
964+
&apis.SetBucketImageRequest{
965+
Bucket: bucket,
966+
Url: siteURL,
967+
},
968+
m.makeRequestOptions(),
969+
)
970+
return err
961971
}
962972

963973
// SetImageWithHost 用来设置空间镜像源,额外添加回源Host头部
964-
func (m *BucketManager) SetImageWithHost(siteURL, bucket, host string) (err error) {
965-
reqURL := fmt.Sprintf("%s%s", getUcHost(m.Cfg.UseHTTPS),
966-
uriSetImageWithHost(siteURL, bucket, host))
967-
c, err := m.getUCClient()
968-
if err != nil {
969-
return
970-
}
971-
return clientv2.DoAndDecodeJsonResponse(c, clientv2.RequestParams{
972-
Context: context.Background(),
973-
Method: clientv2.RequestMethodPost,
974-
Url: reqURL,
975-
Header: nil,
976-
GetBody: nil,
977-
}, nil)
974+
func (m *BucketManager) SetImageWithHost(siteURL, bucket, host string) error {
975+
_, err := m.apiClient.SetBucketImage(
976+
context.Background(),
977+
&apis.SetBucketImageRequest{
978+
Bucket: bucket,
979+
Url: siteURL,
980+
Host: host,
981+
},
982+
m.makeRequestOptions(),
983+
)
984+
return err
978985
}
979986

980987
// UnsetImage 用来取消空间镜像源设置
981-
func (m *BucketManager) UnsetImage(bucket string) (err error) {
982-
reqURL := fmt.Sprintf("%s%s", getUcHost(m.Cfg.UseHTTPS), uriUnsetImage(bucket))
983-
c, err := m.getUCClient()
984-
if err != nil {
985-
return
986-
}
987-
return clientv2.DoAndDecodeJsonResponse(c, clientv2.RequestParams{
988-
Context: context.Background(),
989-
Method: clientv2.RequestMethodPost,
990-
Url: reqURL,
991-
Header: nil,
992-
GetBody: nil,
993-
}, nil)
988+
func (m *BucketManager) UnsetImage(bucket string) error {
989+
_, err := m.apiClient.UnsetBucketImage(
990+
context.Background(),
991+
&apis.UnsetBucketImageRequest{
992+
Bucket: bucket,
993+
},
994+
m.makeRequestOptions(),
995+
)
996+
return err
994997
}
995998

996999
type AsyncFetchParam struct {
@@ -1254,21 +1257,6 @@ func URIRestoreAr(bucket, key string, afterDay int) string {
12541257
return fmt.Sprintf("/restoreAr/%s/freezeAfterDays/%d", EncodedEntry(bucket, key), afterDay)
12551258
}
12561259

1257-
func uriSetImage(siteURL, bucket string) string {
1258-
return fmt.Sprintf("/image/%s/from/%s", bucket,
1259-
base64.URLEncoding.EncodeToString([]byte(siteURL)))
1260-
}
1261-
1262-
func uriSetImageWithHost(siteURL, bucket, host string) string {
1263-
return fmt.Sprintf("/image/%s/from/%s/host/%s", bucket,
1264-
base64.URLEncoding.EncodeToString([]byte(siteURL)),
1265-
base64.URLEncoding.EncodeToString([]byte(host)))
1266-
}
1267-
1268-
func uriUnsetImage(bucket string) string {
1269-
return fmt.Sprintf("/unimage/%s", bucket)
1270-
}
1271-
12721260
// EncodedEntry 生成URL Safe Base64编码的 Entry
12731261
func EncodedEntry(bucket, key string) string {
12741262
entry := fmt.Sprintf("%s:%s", bucket, key)

storage/region.go

+1-133
Original file line numberDiff line numberDiff line change
@@ -3,23 +3,14 @@ package storage
33
import (
44
"context"
55
"fmt"
6-
"net"
7-
"net/http"
86
"strings"
9-
"time"
107

118
"github.com/qiniu/go-sdk/v7/auth"
12-
"github.com/qiniu/go-sdk/v7/client"
139
"github.com/qiniu/go-sdk/v7/internal/clientv2"
14-
"github.com/qiniu/go-sdk/v7/internal/hostprovider"
1510
"github.com/qiniu/go-sdk/v7/storagev2/apis"
16-
"github.com/qiniu/go-sdk/v7/storagev2/backoff"
17-
"github.com/qiniu/go-sdk/v7/storagev2/chooser"
1811
"github.com/qiniu/go-sdk/v7/storagev2/defaults"
1912
"github.com/qiniu/go-sdk/v7/storagev2/http_client"
2013
region_v2 "github.com/qiniu/go-sdk/v7/storagev2/region"
21-
"github.com/qiniu/go-sdk/v7/storagev2/resolver"
22-
"github.com/qiniu/go-sdk/v7/storagev2/retrier"
2314
)
2415

2516
// 存储所在的地区,例如华东,华南,华北
@@ -286,23 +277,6 @@ func getUcHost(useHttps bool) string {
286277
return endpoint(useHttps, host)
287278
}
288279

289-
// 不带 scheme
290-
func getUcBackupHosts() []string {
291-
var hosts []string
292-
if len(UcHost) > 0 {
293-
hosts = append(hosts, removeHostScheme(UcHost))
294-
}
295-
296-
for _, host := range ucHosts {
297-
if len(host) > 0 {
298-
hosts = append(hosts, removeHostScheme(host))
299-
}
300-
}
301-
302-
hosts = removeRepeatStringItem(hosts)
303-
return hosts
304-
}
305-
306280
func getUcEndpoint(useHttps bool) region_v2.EndpointsProvider {
307281
ucHosts := make([]string, 0, 1+len(ucHosts))
308282
if len(UcHost) > 0 {
@@ -371,7 +345,7 @@ func GetRegionsInfoWithOptions(mac *auth.Credentials, options UCApiOptions) ([]R
371345
},
372346
}).GetRegions(
373347
context.Background(),
374-
&apis.GetRegionsRequest{},
348+
&apis.GetRegionsRequest{Credentials: mac},
375349
&apis.Options{OverwrittenBucketHosts: getUcEndpoint(options.UseHttps)},
376350
)
377351
if err != nil {
@@ -386,109 +360,3 @@ func GetRegionsInfoWithOptions(mac *auth.Credentials, options UCApiOptions) ([]R
386360
}
387361
return regions, nil
388362
}
389-
390-
type ucClientConfig struct {
391-
// 非 uc query api 需要去除默认域名 defaultApiHost
392-
IsUcQueryApi bool
393-
394-
// 单域名重试次数
395-
RetryMax int
396-
397-
// 主备域名冻结时间(默认:600s),当一个域名请求失败(单个域名会被重试 TryTimes 次),会被冻结一段时间,使用备用域名进行重试,在冻结时间内,域名不能被使用,当一个操作中所有域名竣备冻结操作不在进行重试,返回最后一次操作的错误。
398-
HostFreezeDuration time.Duration
399-
400-
// 域名解析器
401-
Resolver resolver.Resolver
402-
403-
// 域名选择器
404-
Chooser chooser.Chooser
405-
406-
// 退避器
407-
Backoff backoff.Backoff
408-
409-
// 重试器
410-
Retrier retrier.Retrier
411-
412-
// 签名前回调函数
413-
BeforeSign func(*http.Request)
414-
415-
// 签名后回调函数
416-
AfterSign func(*http.Request)
417-
418-
// 签名失败回调函数
419-
SignError func(*http.Request, error)
420-
421-
// 域名解析前回调函数
422-
BeforeResolve func(*http.Request)
423-
424-
// 域名解析后回调函数
425-
AfterResolve func(*http.Request, []net.IP)
426-
427-
// 域名解析错误回调函数
428-
ResolveError func(*http.Request, error)
429-
430-
// 退避前回调函数
431-
BeforeBackoff func(*http.Request, *retrier.RetrierOptions, time.Duration)
432-
433-
// 退避后回调函数
434-
AfterBackoff func(*http.Request, *retrier.RetrierOptions, time.Duration)
435-
436-
// 请求前回调函数
437-
BeforeRequest func(*http.Request, *retrier.RetrierOptions)
438-
439-
// 请求后回调函数
440-
AfterResponse func(*http.Request, *http.Response, *retrier.RetrierOptions, error)
441-
442-
// 自定义客户端
443-
Client *client.Client
444-
}
445-
446-
func getUCClient(config ucClientConfig, mac *auth.Credentials) clientv2.Client {
447-
allHosts := getUcBackupHosts()
448-
var hosts []string = nil
449-
if !config.IsUcQueryApi {
450-
// 非 uc query api 去除 defaultApiHost
451-
for _, host := range allHosts {
452-
if host != defaultApiHost {
453-
hosts = append(hosts, host)
454-
}
455-
}
456-
} else {
457-
hosts = allHosts
458-
}
459-
460-
is := []clientv2.Interceptor{
461-
clientv2.NewHostsRetryInterceptor(clientv2.HostsRetryConfig{
462-
RetryMax: len(hosts),
463-
HostFreezeDuration: config.HostFreezeDuration,
464-
HostProvider: hostprovider.NewWithHosts(hosts),
465-
Retrier: config.Retrier,
466-
}),
467-
clientv2.NewSimpleRetryInterceptor(clientv2.SimpleRetryConfig{
468-
RetryMax: config.RetryMax,
469-
Backoff: config.Backoff,
470-
Resolver: config.Resolver,
471-
Chooser: config.Chooser,
472-
Retrier: config.Retrier,
473-
BeforeResolve: config.BeforeResolve,
474-
AfterResolve: config.AfterResolve,
475-
ResolveError: config.ResolveError,
476-
BeforeBackoff: config.BeforeBackoff,
477-
AfterBackoff: config.AfterBackoff,
478-
BeforeRequest: config.BeforeRequest,
479-
AfterResponse: config.AfterResponse,
480-
}),
481-
}
482-
483-
if mac != nil {
484-
is = append(is, clientv2.NewAuthInterceptor(clientv2.AuthConfig{
485-
Credentials: mac,
486-
TokenType: auth.TokenQiniu,
487-
BeforeSign: config.BeforeSign,
488-
AfterSign: config.AfterSign,
489-
SignError: config.SignError,
490-
}))
491-
}
492-
493-
return clientv2.NewClient(clientv2.NewClientWithClientV1(config.Client), is...)
494-
}

0 commit comments

Comments
 (0)