github.com/qiniu/go-sdk/v7@v7.27.0/storagev2/apis/api_query_bucket_v2.go (about)

     1  // THIS FILE IS GENERATED BY api-generator, DO NOT EDIT DIRECTLY!
     2  
     3  package apis
     4  
     5  import (
     6  	"context"
     7  	"net/http"
     8  	"net/url"
     9  	"strings"
    10  
    11  	uplog "github.com/qiniu/go-sdk/v7/internal/uplog"
    12  	querybucketv2 "github.com/qiniu/go-sdk/v7/storagev2/apis/query_bucket_v2"
    13  	errors "github.com/qiniu/go-sdk/v7/storagev2/errors"
    14  	httpclient "github.com/qiniu/go-sdk/v7/storagev2/http_client"
    15  	region "github.com/qiniu/go-sdk/v7/storagev2/region"
    16  )
    17  
    18  type innerQueryBucketV2Request querybucketv2.Request
    19  
    20  func (query *innerQueryBucketV2Request) getBucketName(ctx context.Context) (string, error) {
    21  	return query.Bucket, nil
    22  }
    23  
    24  func (query *innerQueryBucketV2Request) buildQuery() (url.Values, error) {
    25  	allQuery := make(url.Values)
    26  	if query.Bucket != "" {
    27  		allQuery.Set("bucket", query.Bucket)
    28  	} else {
    29  		return nil, errors.MissingRequiredFieldError{Name: "Bucket"}
    30  	}
    31  	if query.AccessKey != "" {
    32  		allQuery.Set("ak", query.AccessKey)
    33  	} else {
    34  		return nil, errors.MissingRequiredFieldError{Name: "AccessKey"}
    35  	}
    36  	return allQuery, nil
    37  }
    38  
    39  type (
    40  	QueryBucketV2Request  = querybucketv2.Request
    41  	QueryBucketV2Response = querybucketv2.Response
    42  )
    43  
    44  // 查询存储空间服务域名
    45  func (storage *Storage) QueryBucketV2(ctx context.Context, request *QueryBucketV2Request, options *Options) (*QueryBucketV2Response, error) {
    46  	if options == nil {
    47  		options = &Options{}
    48  	}
    49  	innerRequest := (*innerQueryBucketV2Request)(request)
    50  	serviceNames := []region.ServiceName{region.ServiceBucket}
    51  	pathSegments := make([]string, 0, 2)
    52  	pathSegments = append(pathSegments, "v2", "query")
    53  	path := "/" + strings.Join(pathSegments, "/")
    54  	var rawQuery string
    55  	if query, err := innerRequest.buildQuery(); err != nil {
    56  		return nil, err
    57  	} else {
    58  		rawQuery += query.Encode()
    59  	}
    60  	headers := http.Header{}
    61  	bucketName := options.OverwrittenBucketName
    62  	if bucketName == "" {
    63  		var err error
    64  		if bucketName, err = innerRequest.getBucketName(ctx); err != nil {
    65  			return nil, err
    66  		}
    67  	}
    68  	uplogInterceptor, err := uplog.NewRequestUplog("queryBucketV2", bucketName, "", nil)
    69  	if err != nil {
    70  		return nil, err
    71  	}
    72  	req := httpclient.Request{Method: "GET", ServiceNames: serviceNames, Path: path, RawQuery: rawQuery, Endpoints: options.OverwrittenEndpoints, Region: options.OverwrittenRegion, Interceptors: []httpclient.Interceptor{uplogInterceptor}, Header: headers, BufferResponse: true, OnRequestProgress: options.OnRequestProgress}
    73  	if options.OverwrittenEndpoints == nil && options.OverwrittenRegion == nil && storage.client.GetRegions() == nil {
    74  		bucketHosts := httpclient.DefaultBucketHosts()
    75  		if options.OverwrittenBucketHosts != nil {
    76  			req.Endpoints = options.OverwrittenBucketHosts
    77  		} else {
    78  			req.Endpoints = bucketHosts
    79  		}
    80  	}
    81  	ctx = httpclient.WithoutSignature(ctx)
    82  	var respBody QueryBucketV2Response
    83  	if err := storage.client.DoAndAcceptJSON(ctx, &req, &respBody); err != nil {
    84  		return nil, err
    85  	}
    86  	return &respBody, nil
    87  }