Browse Source

解决调试问题

feature_gxh
Sydonian 8 months ago
parent
commit
8761088ec2
9 changed files with 48 additions and 40 deletions
  1. +6
    -1
      sdks/sdks.go
  2. +4
    -4
      sdks/storage/cdsapi/bucket.go
  3. +1
    -1
      sdks/storage/cdsapi/cache.go
  4. +1
    -1
      sdks/storage/cdsapi/hub.go
  5. +16
    -12
      sdks/storage/cdsapi/object.go
  6. +7
    -7
      sdks/storage/cdsapi/package.go
  7. +3
    -3
      sdks/storage/cdsapi/storage.go
  8. +2
    -2
      sdks/storage/cdsapi/user.go
  9. +8
    -9
      sdks/storage/cdsapi/utils.go

+ 6
- 1
sdks/sdks.go View File

@@ -34,7 +34,7 @@ type RequestParam struct {


func (p *RequestParam) MakeRequest(baseURL string) (*http.Request, error) { func (p *RequestParam) MakeRequest(baseURL string) (*http.Request, error) {
var body io.ReadCloser var body io.ReadCloser
bodyLen := int64(-1)
bodyLen := int64(0)
if p.Body != nil { if p.Body != nil {
body = p.Body.IntoStream() body = p.Body.IntoStream()
bodyLen = p.Body.Length() bodyLen = p.Body.Length()
@@ -175,11 +175,16 @@ func ParseCodeDataJSONResponse[T any](resp *http.Response, ret T) error {
if strings.Contains(contType, http2.ContentTypeJSON) { if strings.Contains(contType, http2.ContentTypeJSON) {
var err error var err error
var r CodeDataResponse[T] var r CodeDataResponse[T]
r.Data = ret


if err = serder.JSONToObjectStreamExRaw(resp.Body, &r); err != nil { if err = serder.JSONToObjectStreamExRaw(resp.Body, &r); err != nil {
return fmt.Errorf("parsing response: %w", err) return fmt.Errorf("parsing response: %w", err)
} }


if r.Code != errorcode.OK {
return &CodeMessageError{Code: r.Code, Message: r.Message}
}

return nil return nil
} }




+ 4
- 4
sdks/storage/cdsapi/bucket.go View File

@@ -35,7 +35,7 @@ func (r *BucketGetByNameResp) ParseResponse(resp *http.Response) error {
} }


func (c *BucketService) GetByName(req BucketGetByName) (*BucketGetByNameResp, error) { func (c *BucketService) GetByName(req BucketGetByName) (*BucketGetByNameResp, error) {
return JSONAPI[*BucketGetByNameResp](c.cfg, http.DefaultClient, &req)
return JSONAPI(c.cfg, http.DefaultClient, &req, &BucketGetByNameResp{})
} }


const BucketCreatePath = "/bucket/create" const BucketCreatePath = "/bucket/create"
@@ -58,7 +58,7 @@ func (r *BucketCreateResp) ParseResponse(resp *http.Response) error {
} }


func (c *BucketService) Create(req BucketCreate) (*BucketCreateResp, error) { func (c *BucketService) Create(req BucketCreate) (*BucketCreateResp, error) {
return JSONAPI[*BucketCreateResp](c.cfg, http.DefaultClient, &req)
return JSONAPI(c.cfg, http.DefaultClient, &req, &BucketCreateResp{})
} }


const BucketDeletePath = "/bucket/delete" const BucketDeletePath = "/bucket/delete"
@@ -79,7 +79,7 @@ func (r *BucketDeleteResp) ParseResponse(resp *http.Response) error {
} }


func (c *BucketService) Delete(req BucketDelete) error { func (c *BucketService) Delete(req BucketDelete) error {
return JSONAPINoData[*BucketDeleteResp](c.cfg, http.DefaultClient, &req)
return JSONAPINoData(c.cfg, http.DefaultClient, &req)
} }


const BucketListUserBucketsPath = "/bucket/listUserBuckets" const BucketListUserBucketsPath = "/bucket/listUserBuckets"
@@ -101,5 +101,5 @@ func (r *BucketListUserBucketsResp) ParseResponse(resp *http.Response) error {
} }


func (c *BucketService) ListUserBuckets(req BucketListUserBucketsReq) (*BucketListUserBucketsResp, error) { func (c *BucketService) ListUserBuckets(req BucketListUserBucketsReq) (*BucketListUserBucketsResp, error) {
return JSONAPI[*BucketListUserBucketsResp](c.cfg, http.DefaultClient, &req)
return JSONAPI(c.cfg, http.DefaultClient, &req, &BucketListUserBucketsResp{})
} }

+ 1
- 1
sdks/storage/cdsapi/cache.go View File

@@ -26,5 +26,5 @@ func (r *CacheMovePackageResp) ParseResponse(resp *http.Response) error {
} }


func (c *Client) CacheMovePackage(req CacheMovePackageReq) (*CacheMovePackageResp, error) { func (c *Client) CacheMovePackage(req CacheMovePackageReq) (*CacheMovePackageResp, error) {
return JSONAPI[*CacheMovePackageResp](c.cfg, http.DefaultClient, &req)
return JSONAPI(c.cfg, http.DefaultClient, &req, &CacheMovePackageResp{})
} }

+ 1
- 1
sdks/storage/cdsapi/hub.go View File

@@ -26,5 +26,5 @@ func (r *HubGetHubsResp) ParseResponse(resp *http.Response) error {
} }


func (c *Client) HubGetHubs(req HubGetHubsReq) (*HubGetHubsResp, error) { func (c *Client) HubGetHubs(req HubGetHubsReq) (*HubGetHubsResp, error) {
return JSONAPI[*HubGetHubsResp](c.cfg, http.DefaultClient, &req)
return JSONAPI(c.cfg, http.DefaultClient, &req, &HubGetHubsResp{})
} }

+ 16
- 12
sdks/storage/cdsapi/object.go View File

@@ -55,7 +55,7 @@ func (r *ObjectListByPathResp) ParseResponse(resp *http.Response) error {
} }


func (c *ObjectService) ListByPath(req ObjectListByPath) (*ObjectListByPathResp, error) { func (c *ObjectService) ListByPath(req ObjectListByPath) (*ObjectListByPathResp, error) {
return JSONAPI[*ObjectListByPathResp](c.cfg, http.DefaultClient, &req)
return JSONAPI(c.cfg, http.DefaultClient, &req, &ObjectListByPathResp{})
} }


const ObjectListByIDsPath = "/object/listByIDs" const ObjectListByIDsPath = "/object/listByIDs"
@@ -78,7 +78,7 @@ func (r *ObjectListByIDsResp) ParseResponse(resp *http.Response) error {
} }


func (c *ObjectService) ListByIDs(req ObjectListByIDs) (*ObjectListByIDsResp, error) { func (c *ObjectService) ListByIDs(req ObjectListByIDs) (*ObjectListByIDsResp, error) {
return JSONAPI[*ObjectListByIDsResp](c.cfg, http.DefaultClient, &req)
return JSONAPI(c.cfg, http.DefaultClient, &req, &ObjectListByIDsResp{})
} }


const ObjectUploadPath = "/object/upload" const ObjectUploadPath = "/object/upload"
@@ -108,6 +108,10 @@ type ObjectUploadResp struct {
} }


func (c *ObjectService) Upload(req ObjectUpload) (*ObjectUploadResp, error) { func (c *ObjectService) Upload(req ObjectUpload) (*ObjectUploadResp, error) {
type uploadInfo struct {
Info string `url:"info"`
}

url, err := url.JoinPath(c.cfg.URL, ObjectUploadPath) url, err := url.JoinPath(c.cfg.URL, ObjectUploadPath)
if err != nil { if err != nil {
return nil, err return nil, err
@@ -119,7 +123,7 @@ func (c *ObjectService) Upload(req ObjectUpload) (*ObjectUploadResp, error) {
} }


resp, err := PostMultiPart(c.cfg, url, resp, err := PostMultiPart(c.cfg, url,
map[string]string{"info": string(infoJSON)},
uploadInfo{Info: string(infoJSON)},
iterator.Map(req.Files, func(src *UploadingObject) (*http2.IterMultiPartFile, error) { iterator.Map(req.Files, func(src *UploadingObject) (*http2.IterMultiPartFile, error) {
return &http2.IterMultiPartFile{ return &http2.IterMultiPartFile{
FieldName: "files", FieldName: "files",
@@ -305,7 +309,7 @@ func (r *ObjectUpdateInfoResp) ParseResponse(resp *http.Response) error {
} }


func (c *ObjectService) UpdateInfo(req ObjectUpdateInfo) (*ObjectUpdateInfoResp, error) { func (c *ObjectService) UpdateInfo(req ObjectUpdateInfo) (*ObjectUpdateInfoResp, error) {
return JSONAPI[*ObjectUpdateInfoResp](c.cfg, http.DefaultClient, &req)
return JSONAPI(c.cfg, http.DefaultClient, &req, &ObjectUpdateInfoResp{})
} }


const ObjectUpdateInfoByPathPath = "/object/updateInfoByPath" const ObjectUpdateInfoByPathPath = "/object/updateInfoByPath"
@@ -328,7 +332,7 @@ func (r *ObjectUpdateInfoByPathResp) ParseResponse(resp *http.Response) error {
} }


func (c *ObjectService) UpdateInfoByPath(req ObjectUpdateInfoByPath) (*ObjectUpdateInfoByPathResp, error) { func (c *ObjectService) UpdateInfoByPath(req ObjectUpdateInfoByPath) (*ObjectUpdateInfoByPathResp, error) {
return JSONAPI[*ObjectUpdateInfoByPathResp](c.cfg, http.DefaultClient, &req)
return JSONAPI(c.cfg, http.DefaultClient, &req, &ObjectUpdateInfoByPathResp{})
} }


const ObjectMovePath = "/object/move" const ObjectMovePath = "/object/move"
@@ -362,7 +366,7 @@ func (r *ObjectMoveResp) ParseResponse(resp *http.Response) error {
} }


func (c *ObjectService) Move(req ObjectMove) (*ObjectMoveResp, error) { func (c *ObjectService) Move(req ObjectMove) (*ObjectMoveResp, error) {
return JSONAPI[*ObjectMoveResp](c.cfg, http.DefaultClient, &req)
return JSONAPI(c.cfg, http.DefaultClient, &req, &ObjectMoveResp{})
} }


const ObjectDeletePath = "/object/delete" const ObjectDeletePath = "/object/delete"
@@ -383,7 +387,7 @@ func (r *ObjectDeleteResp) ParseResponse(resp *http.Response) error {
} }


func (c *ObjectService) Delete(req ObjectDelete) error { func (c *ObjectService) Delete(req ObjectDelete) error {
return JSONAPINoData[*ObjectDeleteResp](c.cfg, http.DefaultClient, &req)
return JSONAPINoData(c.cfg, http.DefaultClient, &req)
} }


const ObjectDeleteByPathPath = "/object/deleteByPath" const ObjectDeleteByPathPath = "/object/deleteByPath"
@@ -405,7 +409,7 @@ func (r *ObjectDeleteByPathResp) ParseResponse(resp *http.Response) error {
} }


func (c *ObjectService) DeleteByPath(req ObjectDeleteByPath) error { func (c *ObjectService) DeleteByPath(req ObjectDeleteByPath) error {
return JSONAPINoData[*ObjectDeleteByPathResp](c.cfg, http.DefaultClient, &req)
return JSONAPINoData(c.cfg, http.DefaultClient, &req)
} }


const ObjectClonePath = "/object/clone" const ObjectClonePath = "/object/clone"
@@ -434,7 +438,7 @@ func (r *ObjectCloneResp) ParseResponse(resp *http.Response) error {
} }


func (c *ObjectService) Clone(req ObjectClone) (*ObjectCloneResp, error) { func (c *ObjectService) Clone(req ObjectClone) (*ObjectCloneResp, error) {
return JSONAPI[*ObjectCloneResp](c.cfg, http.DefaultClient, &req)
return JSONAPI(c.cfg, http.DefaultClient, &req, &ObjectCloneResp{})
} }


const ObjectGetPackageObjectsPath = "/object/getPackageObjects" const ObjectGetPackageObjectsPath = "/object/getPackageObjects"
@@ -457,7 +461,7 @@ func (r *ObjectGetPackageObjectsResp) ParseResponse(resp *http.Response) error {
} }


func (c *ObjectService) GetPackageObjects(req ObjectGetPackageObjects) (*ObjectGetPackageObjectsResp, error) { func (c *ObjectService) GetPackageObjects(req ObjectGetPackageObjects) (*ObjectGetPackageObjectsResp, error) {
return JSONAPI[*ObjectGetPackageObjectsResp](c.cfg, http.DefaultClient, &req)
return JSONAPI(c.cfg, http.DefaultClient, &req, &ObjectGetPackageObjectsResp{})
} }


const ObjectNewMultipartUploadPath = "/v1/object/newMultipartUpload" const ObjectNewMultipartUploadPath = "/v1/object/newMultipartUpload"
@@ -481,7 +485,7 @@ func (r *ObjectNewMultipartUploadResp) ParseResponse(resp *http.Response) error
} }


func (c *ObjectService) NewMultipartUpload(req ObjectNewMultipartUpload) (*ObjectNewMultipartUploadResp, error) { func (c *ObjectService) NewMultipartUpload(req ObjectNewMultipartUpload) (*ObjectNewMultipartUploadResp, error) {
return JSONAPI[*ObjectNewMultipartUploadResp](c.cfg, http.DefaultClient, &req)
return JSONAPI(c.cfg, http.DefaultClient, &req, &ObjectNewMultipartUploadResp{})
} }


const ObjectUploadPartPath = "/v1/object/uploadPart" const ObjectUploadPartPath = "/v1/object/uploadPart"
@@ -560,5 +564,5 @@ func (r *ObjectCompleteMultipartUploadResp) ParseResponse(resp *http.Response) e
} }


func (c *ObjectService) CompleteMultipartUpload(req ObjectCompleteMultipartUpload) (*ObjectCompleteMultipartUploadResp, error) { func (c *ObjectService) CompleteMultipartUpload(req ObjectCompleteMultipartUpload) (*ObjectCompleteMultipartUploadResp, error) {
return JSONAPI[*ObjectCompleteMultipartUploadResp](c.cfg, http.DefaultClient, &req)
return JSONAPI(c.cfg, http.DefaultClient, &req, &ObjectCompleteMultipartUploadResp{})
} }

+ 7
- 7
sdks/storage/cdsapi/package.go View File

@@ -41,7 +41,7 @@ func (r *PackageGetResp) ParseResponse(resp *http.Response) error {
} }


func (c *PackageService) Get(req PackageGetReq) (*PackageGetResp, error) { func (c *PackageService) Get(req PackageGetReq) (*PackageGetResp, error) {
return JSONAPI[*PackageGetResp](c.cfg, http.DefaultClient, &req)
return JSONAPI(c.cfg, http.DefaultClient, &req, &PackageGetResp{})
} }


const PackageGetByFullNamePath = "/package/getByFullName" const PackageGetByFullNamePath = "/package/getByFullName"
@@ -65,7 +65,7 @@ func (r *PackageGetByFullNameResp) ParseResponse(resp *http.Response) error {
} }


func (c *PackageService) GetByName(req PackageGetByFullName) (*PackageGetByFullNameResp, error) { func (c *PackageService) GetByName(req PackageGetByFullName) (*PackageGetByFullNameResp, error) {
return JSONAPI[*PackageGetByFullNameResp](c.cfg, http.DefaultClient, &req)
return JSONAPI(c.cfg, http.DefaultClient, &req, &PackageGetByFullNameResp{})
} }


const PackageCreatePath = "/package/create" const PackageCreatePath = "/package/create"
@@ -89,7 +89,7 @@ func (r *PackageCreateResp) ParseResponse(resp *http.Response) error {
} }


func (s *PackageService) Create(req PackageCreate) (*PackageCreateResp, error) { func (s *PackageService) Create(req PackageCreate) (*PackageCreateResp, error) {
return JSONAPI[*PackageCreateResp](s.cfg, http.DefaultClient, &req)
return JSONAPI(s.cfg, http.DefaultClient, &req, &PackageCreateResp{})
} }


const PackageCreateLoadPath = "/package/createLoad" const PackageCreateLoadPath = "/package/createLoad"
@@ -164,7 +164,7 @@ func (r *PackageDeleteResp) ParseResponse(resp *http.Response) error {
} }


func (c *PackageService) Delete(req PackageDelete) error { func (c *PackageService) Delete(req PackageDelete) error {
return JSONAPINoData[*PackageDeleteResp](c.cfg, http.DefaultClient, &req)
return JSONAPINoData(c.cfg, http.DefaultClient, &req)
} }


const PackageClonePath = "/package/clone" const PackageClonePath = "/package/clone"
@@ -189,7 +189,7 @@ func (r *PackageCloneResp) ParseResponse(resp *http.Response) error {
} }


func (c *PackageService) Clone(req PackageClone) (*PackageCloneResp, error) { func (c *PackageService) Clone(req PackageClone) (*PackageCloneResp, error) {
return JSONAPI[*PackageCloneResp](c.cfg, http.DefaultClient, &req)
return JSONAPI(c.cfg, http.DefaultClient, &req, &PackageCloneResp{})
} }


const PackageListBucketPackagesPath = "/package/listBucketPackages" const PackageListBucketPackagesPath = "/package/listBucketPackages"
@@ -212,7 +212,7 @@ func (r *PackageListBucketPackagesResp) ParseResponse(resp *http.Response) error
} }


func (c *PackageService) ListBucketPackages(req PackageListBucketPackages) (*PackageListBucketPackagesResp, error) { func (c *PackageService) ListBucketPackages(req PackageListBucketPackages) (*PackageListBucketPackagesResp, error) {
return JSONAPI[*PackageListBucketPackagesResp](c.cfg, http.DefaultClient, &req)
return JSONAPI(c.cfg, http.DefaultClient, &req, &PackageListBucketPackagesResp{})
} }


const PackageGetCachedStoragesPath = "/package/getCachedStorages" const PackageGetCachedStoragesPath = "/package/getCachedStorages"
@@ -235,5 +235,5 @@ func (r *PackageGetCachedStoragesResp) ParseResponse(resp *http.Response) error
} }


func (c *PackageService) GetCachedStorages(req PackageGetCachedStoragesReq) (*PackageGetCachedStoragesResp, error) { func (c *PackageService) GetCachedStorages(req PackageGetCachedStoragesReq) (*PackageGetCachedStoragesResp, error) {
return JSONAPI[*PackageGetCachedStoragesResp](c.cfg, http.DefaultClient, &req)
return JSONAPI(c.cfg, http.DefaultClient, &req, &PackageGetCachedStoragesResp{})
} }

+ 3
- 3
sdks/storage/cdsapi/storage.go View File

@@ -27,7 +27,7 @@ func (r *StorageLoadPackageResp) ParseResponse(resp *http.Response) error {
} }


func (c *Client) StorageLoadPackage(req StorageLoadPackageReq) (*StorageLoadPackageResp, error) { func (c *Client) StorageLoadPackage(req StorageLoadPackageReq) (*StorageLoadPackageResp, error) {
return JSONAPI[*StorageLoadPackageResp](c.cfg, http.DefaultClient, &req)
return JSONAPI(c.cfg, http.DefaultClient, &req, &StorageLoadPackageResp{})
} }


const StorageCreatePackagePath = "/storage/createPackage" const StorageCreatePackagePath = "/storage/createPackage"
@@ -54,7 +54,7 @@ func (r *StorageCreatePackageResp) ParseResponse(resp *http.Response) error {
} }


func (c *Client) StorageCreatePackage(req StorageCreatePackageReq) (*StorageCreatePackageResp, error) { func (c *Client) StorageCreatePackage(req StorageCreatePackageReq) (*StorageCreatePackageResp, error) {
return JSONAPI[*StorageCreatePackageResp](c.cfg, http.DefaultClient, &req)
return JSONAPI(c.cfg, http.DefaultClient, &req, &StorageCreatePackageResp{})
} }


const StorageGetPath = "/storage/get" const StorageGetPath = "/storage/get"
@@ -77,5 +77,5 @@ func (r *StorageGetResp) ParseResponse(resp *http.Response) error {
} }


func (c *Client) StorageGet(req StorageGet) (*StorageGetResp, error) { func (c *Client) StorageGet(req StorageGet) (*StorageGetResp, error) {
return JSONAPI[*StorageGetResp](c.cfg, http.DefaultClient, &req)
return JSONAPI(c.cfg, http.DefaultClient, &req, &StorageGetResp{})
} }

+ 2
- 2
sdks/storage/cdsapi/user.go View File

@@ -26,7 +26,7 @@ func (r *UserCreateResp) ParseResponse(resp *http.Response) error {
} }


func (c *Client) UserCreate(req *UserCreate) (*UserCreateResp, error) { func (c *Client) UserCreate(req *UserCreate) (*UserCreateResp, error) {
return JSONAPI[*UserCreateResp](c.cfg, http.DefaultClient, req)
return JSONAPI(c.cfg, http.DefaultClient, req, &UserCreateResp{})
} }


const UserDeletePath = "/v1/user/delete" const UserDeletePath = "/v1/user/delete"
@@ -46,5 +46,5 @@ func (r *UserDeleteResp) ParseResponse(resp *http.Response) error {
} }


func (c *Client) UserDelete(req *UserDelete) error { func (c *Client) UserDelete(req *UserDelete) error {
return JSONAPINoData[*UserDeleteResp](c.cfg, http.DefaultClient, req)
return JSONAPINoData(c.cfg, http.DefaultClient, req)
} }

+ 8
- 9
sdks/storage/cdsapi/utils.go View File

@@ -44,33 +44,32 @@ func ParseJSONResponse[TBody any](resp *http.Response) (TBody, error) {
return ret, fmt.Errorf("unknow response content type: %s, status: %d, body(prefix): %s", contType, resp.StatusCode, strCont[:math2.Min(len(strCont), 200)]) return ret, fmt.Errorf("unknow response content type: %s, status: %d, body(prefix): %s", contType, resp.StatusCode, strCont[:math2.Min(len(strCont), 200)])
} }


func JSONAPI[Resp sdks.APIResponse, Req sdks.APIRequest](cfg *Config, cli *http.Client, req Req) (Resp, error) {
var re Resp
func JSONAPI[Resp sdks.APIResponse, Req sdks.APIRequest](cfg *Config, cli *http.Client, req Req, resp Resp) (Resp, error) {


param := req.MakeParam() param := req.MakeParam()


httpReq, err := param.MakeRequest(cfg.URL) httpReq, err := param.MakeRequest(cfg.URL)
if err != nil { if err != nil {
return re, err
return resp, err
} }


if cfg.AccessKey != "" && cfg.SecretKey != "" { if cfg.AccessKey != "" && cfg.SecretKey != "" {
err = SignWithPayloadHash(httpReq, cfg.AccessKey, cfg.SecretKey, calcSha256(param.Body)) err = SignWithPayloadHash(httpReq, cfg.AccessKey, cfg.SecretKey, calcSha256(param.Body))
if err != nil { if err != nil {
return re, err
return resp, err
} }
} }


resp, err := cli.Do(httpReq)
httpResp, err := cli.Do(httpReq)
if err != nil { if err != nil {
return re, err
return resp, err
} }


err = re.ParseResponse(resp)
return re, err
err = resp.ParseResponse(httpResp)
return resp, err
} }


func JSONAPINoData[Resp sdks.APIResponse, Req sdks.APIRequest](cfg *Config, cli *http.Client, req Req) error {
func JSONAPINoData[Req sdks.APIRequest](cfg *Config, cli *http.Client, req Req) error {
param := req.MakeParam() param := req.MakeParam()


httpReq, err := param.MakeRequest(cfg.URL) httpReq, err := param.MakeRequest(cfg.URL)


Loading…
Cancel
Save