github.com/qiniu/go-sdk/v7@v7.27.0/media/apis/api_prefop.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 "time" 11 12 auth "github.com/qiniu/go-sdk/v7/auth" 13 uplog "github.com/qiniu/go-sdk/v7/internal/uplog" 14 prefop "github.com/qiniu/go-sdk/v7/media/apis/prefop" 15 errors "github.com/qiniu/go-sdk/v7/storagev2/errors" 16 httpclient "github.com/qiniu/go-sdk/v7/storagev2/http_client" 17 region "github.com/qiniu/go-sdk/v7/storagev2/region" 18 uptoken "github.com/qiniu/go-sdk/v7/storagev2/uptoken" 19 ) 20 21 type innerPrefopRequest prefop.Request 22 23 func (query *innerPrefopRequest) buildQuery() (url.Values, error) { 24 allQuery := make(url.Values) 25 if query.PersistentId != "" { 26 allQuery.Set("id", query.PersistentId) 27 } else { 28 return nil, errors.MissingRequiredFieldError{Name: "PersistentId"} 29 } 30 return allQuery, nil 31 } 32 33 type ( 34 PrefopRequest = prefop.Request 35 PrefopResponse = prefop.Response 36 ) 37 38 // 查询持久化数据处理命令的执行状态 39 func (media *Media) Prefop(ctx context.Context, request *PrefopRequest, options *Options) (*PrefopResponse, error) { 40 if options == nil { 41 options = &Options{} 42 } 43 innerRequest := (*innerPrefopRequest)(request) 44 serviceNames := []region.ServiceName{region.ServiceApi} 45 if innerRequest.Credentials == nil && media.client.GetCredentials() == nil { 46 return nil, errors.MissingRequiredFieldError{Name: "Credentials"} 47 } 48 pathSegments := make([]string, 0, 3) 49 pathSegments = append(pathSegments, "status", "get", "prefop") 50 path := "/" + strings.Join(pathSegments, "/") 51 var rawQuery string 52 if query, err := innerRequest.buildQuery(); err != nil { 53 return nil, err 54 } else { 55 rawQuery += query.Encode() 56 } 57 headers := http.Header{} 58 uplogInterceptor, err := uplog.NewRequestUplog("prefop", "", "", func() (string, error) { 59 credentials := innerRequest.Credentials 60 if credentials == nil { 61 credentials = media.client.GetCredentials() 62 } 63 putPolicy, err := uptoken.NewPutPolicy("", time.Now().Add(time.Hour)) 64 if err != nil { 65 return "", err 66 } 67 return uptoken.NewSigner(putPolicy, credentials).GetUpToken(ctx) 68 }) 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, AuthType: auth.TokenQiniu, Credentials: innerRequest.Credentials, BufferResponse: true, OnRequestProgress: options.OnRequestProgress} 73 if options.OverwrittenEndpoints == nil && options.OverwrittenRegion == nil && media.client.GetRegions() == nil { 74 bucketHosts := httpclient.DefaultBucketHosts() 75 76 req.Region = media.client.GetAllRegions() 77 if req.Region == nil { 78 if options.OverwrittenBucketHosts != nil { 79 if bucketHosts, err = options.OverwrittenBucketHosts.GetEndpoints(ctx); err != nil { 80 return nil, err 81 } 82 } 83 allRegionsOptions := region.AllRegionsProviderOptions{UseInsecureProtocol: media.client.UseInsecureProtocol(), HostFreezeDuration: media.client.GetHostFreezeDuration(), Resolver: media.client.GetResolver(), Chooser: media.client.GetChooser(), BeforeSign: media.client.GetBeforeSignCallback(), AfterSign: media.client.GetAfterSignCallback(), SignError: media.client.GetSignErrorCallback(), BeforeResolve: media.client.GetBeforeResolveCallback(), AfterResolve: media.client.GetAfterResolveCallback(), ResolveError: media.client.GetResolveErrorCallback(), BeforeBackoff: media.client.GetBeforeBackoffCallback(), AfterBackoff: media.client.GetAfterBackoffCallback(), BeforeRequest: media.client.GetBeforeRequestCallback(), AfterResponse: media.client.GetAfterResponseCallback()} 84 if hostRetryConfig := media.client.GetHostRetryConfig(); hostRetryConfig != nil { 85 allRegionsOptions.RetryMax = hostRetryConfig.RetryMax 86 allRegionsOptions.Backoff = hostRetryConfig.Backoff 87 } 88 credentials := innerRequest.Credentials 89 if credentials == nil { 90 credentials = media.client.GetCredentials() 91 } 92 if req.Region, err = region.NewAllRegionsProvider(credentials, bucketHosts, &allRegionsOptions); err != nil { 93 return nil, err 94 } 95 } 96 } 97 var respBody PrefopResponse 98 if err := media.client.DoAndAcceptJSON(ctx, &req, &respBody); err != nil { 99 return nil, err 100 } 101 return &respBody, nil 102 }