Skip to content

Commit 623c33c

Browse files
author
wanjiewu
committed
支持9个接口
1 parent 29cbb22 commit 623c33c

File tree

2 files changed

+501
-0
lines changed

2 files changed

+501
-0
lines changed

ci_dataindex.go

Lines changed: 322 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,322 @@
1+
package cos
2+
3+
import (
4+
"bytes"
5+
"context"
6+
"encoding/json"
7+
"fmt"
8+
"net/http"
9+
"strings"
10+
)
11+
12+
type Dataset struct {
13+
BindCount int `json:"BindCount"`
14+
CreateTime string `json:"CreateTime"`
15+
DatasetName string `json:"DatasetName"`
16+
Description string `json:"Description"`
17+
FileCount int `json:"FileCount"`
18+
TemplateID string `json:"TemplateId"`
19+
TotalFileSize int `json:"TotalFileSize"`
20+
UpdateTime string `json:"UpdateTime"`
21+
}
22+
23+
type OptHeaders struct {
24+
XOptionHeader *http.Header `header:"-,omitempty" url:"-" json:"-" xml:"-"`
25+
}
26+
27+
type CreateDataSetOptions struct {
28+
DatasetName string `json:"DatasetName" url:"-"`
29+
Description string `json:"Description" url:"-"`
30+
TemplateId string `json:"TemplateId" url:"-"`
31+
OptHeaders *OptHeaders `header:"-,omitempty" url:"-" json:"-" xml:"-"`
32+
}
33+
34+
type CreateDataSetResult struct {
35+
Response struct {
36+
Dataset Dataset `json:"Dataset"`
37+
RequestID string `json:"RequestId"`
38+
} `json:"Response"`
39+
}
40+
41+
func (s *CIService) baseSend(ctx context.Context, opt interface{}, optionHeader *OptHeaders, uri string, method string) (*bytes.Buffer, *Response, error) {
42+
var buf bytes.Buffer
43+
var f *strings.Reader
44+
var sendOpt *sendOptions
45+
if optionHeader == nil {
46+
optionHeader = &OptHeaders{
47+
XOptionHeader: &http.Header{},
48+
}
49+
}
50+
optionHeader.XOptionHeader.Add("Content-Type", "application/json")
51+
optionHeader.XOptionHeader.Add("Accept", "application/json")
52+
if method == http.MethodGet {
53+
sendOpt = &sendOptions{
54+
baseURL: s.client.BaseURL.CIURL,
55+
uri: uri,
56+
method: method,
57+
optHeader: optionHeader,
58+
optQuery: opt,
59+
result: &buf,
60+
}
61+
} else {
62+
if opt != nil {
63+
bs, err := json.Marshal(opt)
64+
if err != nil {
65+
return nil, nil, err
66+
}
67+
f = strings.NewReader(string(bs))
68+
}
69+
sendOpt = &sendOptions{
70+
baseURL: s.client.BaseURL.CIURL,
71+
uri: uri,
72+
method: method,
73+
body: f,
74+
optHeader: optionHeader,
75+
result: &buf,
76+
}
77+
}
78+
resp, err := s.client.send(ctx, sendOpt)
79+
return &buf, resp, err
80+
}
81+
82+
func (s *CIService) CreateDataSet(ctx context.Context, opt *CreateDataSetOptions) (*CreateDataSetResult, *Response, error) {
83+
var res CreateDataSetResult
84+
if opt == nil {
85+
return nil, nil, fmt.Errorf("opt param nil")
86+
}
87+
buf, resp, err := s.baseSend(ctx, opt, opt.OptHeaders, "/dataset/create", http.MethodPost)
88+
if buf.Len() > 0 {
89+
err = json.Unmarshal(buf.Bytes(), &res)
90+
}
91+
return &res, resp, err
92+
}
93+
94+
type DescribeDatasetsOptions struct {
95+
MaxResults int64 `url:"maxresults,omitempty" url:"-"`
96+
Prefix string `url:"prefix,omitempty" url:"-"`
97+
Nexttoken string `url:"nexttoken,omitempty" url:"-"`
98+
OptHeaders *OptHeaders `header:"-,omitempty" url:"-" json:"-" xml:"-"`
99+
}
100+
type DescribeDatasetsResult struct {
101+
Response struct {
102+
Datasets []Dataset `json:"Datasets"`
103+
NextToken string `json:"NextToken"`
104+
RequestID string `json:"RequestId"`
105+
} `json:"Response"`
106+
}
107+
108+
func (s *CIService) DescribeDatasets(ctx context.Context, opt *DescribeDatasetsOptions) (*DescribeDatasetsResult, *Response, error) {
109+
var res DescribeDatasetsResult
110+
if opt == nil {
111+
return nil, nil, fmt.Errorf("opt param nil")
112+
}
113+
buf, resp, err := s.baseSend(ctx, opt, opt.OptHeaders, "/datasets", http.MethodGet)
114+
if buf.Len() > 0 {
115+
err = json.Unmarshal(buf.Bytes(), &res)
116+
}
117+
return &res, resp, err
118+
}
119+
120+
type UpdateDatasetOptions struct {
121+
DatasetName string `json:"DatasetName" url:"-"`
122+
Description string `json:"Description" url:"-"`
123+
TemplateId string `json:"TemplateId" url:"-"`
124+
OptHeaders *OptHeaders `header:"-,omitempty" url:"-" json:"-" xml:"-"`
125+
}
126+
127+
type UpdateDatasetResult struct {
128+
Response struct {
129+
Dataset Dataset `json:"Dataset"`
130+
RequestID string `json:"RequestId"`
131+
} `json:"Response"`
132+
}
133+
134+
func (s *CIService) UpdateDataset(ctx context.Context, opt *UpdateDatasetOptions) (*UpdateDatasetResult, *Response, error) {
135+
var res UpdateDatasetResult
136+
if opt == nil {
137+
return nil, nil, fmt.Errorf("opt param nil")
138+
}
139+
buf, resp, err := s.baseSend(ctx, opt, opt.OptHeaders, "/dataset/update", http.MethodPost)
140+
if buf.Len() > 0 {
141+
err = json.Unmarshal(buf.Bytes(), &res)
142+
}
143+
return &res, resp, err
144+
}
145+
146+
type DeleteDatasetOptions struct {
147+
DatasetName string `json:"DatasetName" url:"-"`
148+
OptHeaders *OptHeaders `header:"-,omitempty" url:"-" json:"-" xml:"-"`
149+
}
150+
151+
type DeleteDatasetResult struct {
152+
Response struct {
153+
Dataset Dataset `json:"Dataset"`
154+
RequestID string `json:"RequestId"`
155+
} `json:"Response"`
156+
}
157+
158+
func (s *CIService) DeleteDataset(ctx context.Context, opt *DeleteDatasetOptions) (*DeleteDatasetResult, *Response, error) {
159+
var res DeleteDatasetResult
160+
if opt == nil {
161+
return nil, nil, fmt.Errorf("opt param nil")
162+
}
163+
buf, resp, err := s.baseSend(ctx, opt, opt.OptHeaders, "/dataset", http.MethodDelete)
164+
if buf.Len() > 0 {
165+
err = json.Unmarshal(buf.Bytes(), &res)
166+
}
167+
return &res, resp, err
168+
}
169+
170+
type DescribeDatasetOptions struct {
171+
DatasetName string `url:"datasetname,omitempty" url:"-"`
172+
Statistics bool `url:"statistics,omitempty" url:"-"`
173+
OptHeaders *OptHeaders `header:"-,omitempty" url:"-" json:"-" xml:"-"`
174+
}
175+
176+
type DescribeDatasetResult struct {
177+
Response struct {
178+
Dataset Dataset `json:"Dataset"`
179+
RequestID string `json:"RequestId"`
180+
} `json:"Response"`
181+
}
182+
183+
func (s *CIService) DescribeDataset(ctx context.Context, opt *DescribeDatasetOptions) (*DescribeDatasetResult, *Response, error) {
184+
var res DescribeDatasetResult
185+
if opt == nil {
186+
return nil, nil, fmt.Errorf("opt param nil")
187+
}
188+
buf, resp, err := s.baseSend(ctx, opt, opt.OptHeaders, "/dataset", http.MethodGet)
189+
if buf.Len() > 0 {
190+
err = json.Unmarshal(buf.Bytes(), &res)
191+
}
192+
return &res, resp, err
193+
}
194+
195+
type File struct {
196+
URI string `json:"URI,omitempty"`
197+
CustomID string `json:"CustomId,omitempty"`
198+
CustomLabels *map[string]string `json:"CustomLabels,omitempty"`
199+
MediaType string `json:"MediaType,omitempty"`
200+
ContentType string `json:"contenttype,omitempty"`
201+
}
202+
203+
type CreateFileMetaIndexOptions struct {
204+
DatasetName string `json:"DatasetName,omitempty" url:"-"`
205+
File *File `json:"File,omitempty" url:"-"`
206+
Callback string `json:"Callback,omitempty" url:"-"`
207+
OptHeaders *OptHeaders `header:"-,omitempty" url:"-" json:"-" xml:"-"`
208+
}
209+
210+
type CreateFileMetaIndexResult struct {
211+
Response struct {
212+
EventID string `json:"EventId"`
213+
RequestID string `json:"RequestId"`
214+
} `json:"Response"`
215+
}
216+
217+
func (s *CIService) CreateFileMetaIndex(ctx context.Context, opt *CreateFileMetaIndexOptions) (*CreateFileMetaIndexResult, *Response, error) {
218+
var res CreateFileMetaIndexResult
219+
if opt == nil {
220+
return nil, nil, fmt.Errorf("opt param nil")
221+
}
222+
buf, resp, err := s.baseSend(ctx, opt, opt.OptHeaders, "/filemeta/create", http.MethodPost)
223+
if buf.Len() > 0 {
224+
err = json.Unmarshal(buf.Bytes(), &res)
225+
}
226+
return &res, resp, err
227+
}
228+
229+
type UpdateFileMetaIndexOptions struct {
230+
DatasetName string `json:"DatasetName,omitempty" url:"-"`
231+
File *File `json:"File,omitempty" url:"-"`
232+
Callback string `json:"Callback,omitempty" url:"-"`
233+
OptHeaders *OptHeaders `header:"-,omitempty" url:"-" json:"-" xml:"-"`
234+
}
235+
236+
type UpdateFileMetaIndexResult struct {
237+
Response struct {
238+
EventID string `json:"EventId"`
239+
RequestID string `json:"RequestId"`
240+
} `json:"Response"`
241+
}
242+
243+
func (s *CIService) UpdateFileMetaIndex(ctx context.Context, opt *UpdateFileMetaIndexOptions) (*UpdateFileMetaIndexResult, *Response, error) {
244+
var res UpdateFileMetaIndexResult
245+
if opt == nil {
246+
return nil, nil, fmt.Errorf("opt param nil")
247+
}
248+
buf, resp, err := s.baseSend(ctx, opt, opt.OptHeaders, "/filemeta/update", http.MethodPost)
249+
if buf.Len() > 0 {
250+
err = json.Unmarshal(buf.Bytes(), &res)
251+
}
252+
return &res, resp, err
253+
}
254+
255+
type DescribeFileMetaIndexOptions struct {
256+
DatasetName string `json:"-" url:"datasetname,omitempty"`
257+
Uri string `json:"-" url:"uri,omitempty"`
258+
OptHeaders *OptHeaders `header:"-,omitempty" url:"-" json:"-" xml:"-"`
259+
}
260+
261+
type FileInfo struct {
262+
Coscrc64 string `json:"COSCRC64"`
263+
COSStorageClass string `json:"COSStorageClass"`
264+
CacheControl string `json:"CacheControl"`
265+
ContentType string `json:"ContentType"`
266+
CreateTime string `json:"CreateTime"`
267+
CustomID string `json:"CustomId"`
268+
CustomLabels map[string]string `json:"CustomLabels"`
269+
DatasetName string `json:"DatasetName"`
270+
ETag string `json:"ETag"`
271+
FileModifiedTime string `json:"FileModifiedTime"`
272+
Filename string `json:"Filename"`
273+
MediaType string `json:"MediaType"`
274+
ObjectACL string `json:"ObjectACL"`
275+
Size int `json:"Size"`
276+
URI string `json:"URI"`
277+
UpdateTime string `json:"UpdateTime"`
278+
}
279+
280+
type DescribeFileMetaIndexResult struct {
281+
Response struct {
282+
Files []FileInfo `json:"Files"`
283+
RequestID string `json:"RequestId"`
284+
} `json:"Response"`
285+
}
286+
287+
func (s *CIService) DescribeFileMetaIndex(ctx context.Context, opt *DescribeFileMetaIndexOptions) (*DescribeFileMetaIndexResult, *Response, error) {
288+
var res DescribeFileMetaIndexResult
289+
if opt == nil {
290+
return nil, nil, fmt.Errorf("opt param nil")
291+
}
292+
buf, resp, err := s.baseSend(ctx, opt, opt.OptHeaders, "/filemeta", http.MethodGet)
293+
if buf.Len() > 0 {
294+
err = json.Unmarshal(buf.Bytes(), &res)
295+
}
296+
return &res, resp, err
297+
}
298+
299+
type DeleteFileMetaIndexOptions struct {
300+
DatasetName string `url:"-" json:"DatasetName,omitempty"`
301+
Uri string `url:"-" json:"URI,omitempty"`
302+
OptHeaders *OptHeaders `header:"-,omitempty" url:"-" json:"-" xml:"-"`
303+
}
304+
305+
type DeleteFileMetaIndexResult struct {
306+
Response struct {
307+
RequestID string `json:"RequestId"`
308+
} `json:"Response"`
309+
}
310+
311+
func (s *CIService) DeleteFileMetaIndex(ctx context.Context, opt *DeleteFileMetaIndexOptions) (*DeleteFileMetaIndexResult, *Response, error) {
312+
var res DeleteFileMetaIndexResult
313+
if opt == nil {
314+
return nil, nil, fmt.Errorf("opt param nil")
315+
}
316+
buf, resp, err := s.baseSend(ctx, opt, opt.OptHeaders, "/filemeta", http.MethodDelete)
317+
if buf.Len() > 0 {
318+
err = json.Unmarshal(buf.Bytes(), &res)
319+
}
320+
return &res, resp, err
321+
}
322+

0 commit comments

Comments
 (0)