|
|
package cos
|
|
|
|
|
|
import (
|
|
|
"context"
|
|
|
"encoding/xml"
|
|
|
"net/http"
|
|
|
)
|
|
|
|
|
|
// Service 相关 API
|
|
|
type ServiceService service
|
|
|
|
|
|
// ServiceGetResult is the result of Get Service
|
|
|
type ServiceGetResult struct {
|
|
|
XMLName xml.Name `xml:"ListAllMyBucketsResult"`
|
|
|
Owner *Owner `xml:"Owner"`
|
|
|
Buckets []Bucket `xml:"Buckets>Bucket,omitempty"`
|
|
|
Marker string `xml:"Marker"`
|
|
|
NextMarker string `xml:"NextMarker"`
|
|
|
IsTruncated bool `xml:"IsTruncated"`
|
|
|
}
|
|
|
|
|
|
type ServiceGetOptions struct {
|
|
|
TagKey string `url:"tagkey,omitempty"`
|
|
|
TagValue string `url:"tagvalue,omitempty"`
|
|
|
MaxKeys int64 `url:"max-keys,omitempty"`
|
|
|
Marker string `url:"marker,omitempty"`
|
|
|
Range string `url:"range,omitempty"`
|
|
|
CreateTime int64 `url:"create-time,omitempty"`
|
|
|
}
|
|
|
|
|
|
// Get Service 接口实现获取该用户下所有Bucket列表。
|
|
|
//
|
|
|
// 该API接口需要使用Authorization签名认证,
|
|
|
// 且只能获取签名中AccessID所属账户的Bucket列表。
|
|
|
//
|
|
|
// https://www.qcloud.com/document/product/436/8291
|
|
|
func (s *ServiceService) Get(ctx context.Context, opt ...*ServiceGetOptions) (*ServiceGetResult, *Response, error) {
|
|
|
var sopt *ServiceGetOptions
|
|
|
if len(opt) > 0 {
|
|
|
sopt = opt[0]
|
|
|
}
|
|
|
var res ServiceGetResult
|
|
|
sendOpt := sendOptions{
|
|
|
baseURL: s.client.BaseURL.ServiceURL,
|
|
|
uri: "/",
|
|
|
method: http.MethodGet,
|
|
|
optQuery: sopt,
|
|
|
result: &res,
|
|
|
}
|
|
|
resp, err := s.client.send(ctx, &sendOpt)
|
|
|
return &res, resp, err
|
|
|
}
|