update the comment for godoc
This commit is contained in:
3
auth.go
3
auth.go
@@ -219,8 +219,7 @@ type AuthorizationTransport struct {
|
||||
SessionToken string
|
||||
rwLocker sync.RWMutex
|
||||
// 签名多久过期
|
||||
Expire time.Duration
|
||||
|
||||
Expire time.Duration
|
||||
Transport http.RoundTripper
|
||||
}
|
||||
|
||||
|
||||
16
bucket.go
16
bucket.go
@@ -6,12 +6,10 @@ import (
|
||||
"net/http"
|
||||
)
|
||||
|
||||
// BucketService ...
|
||||
//
|
||||
// Bucket 相关 API
|
||||
// BucketService 相关 API
|
||||
type BucketService service
|
||||
|
||||
// BucketGetResult ...
|
||||
// BucketGetResult is the result of GetBucket
|
||||
type BucketGetResult struct {
|
||||
XMLName xml.Name `xml:"ListBucketResult"`
|
||||
Name string
|
||||
@@ -26,7 +24,7 @@ type BucketGetResult struct {
|
||||
EncodingType string `xml:"Encoding-Type,omitempty"`
|
||||
}
|
||||
|
||||
// BucketGetOptions ...
|
||||
// BucketGetOptions is the option of GetBucket
|
||||
type BucketGetOptions struct {
|
||||
Prefix string `url:"prefix,omitempty"`
|
||||
Delimiter string `url:"delimiter,omitempty"`
|
||||
@@ -51,7 +49,7 @@ func (s *BucketService) Get(ctx context.Context, opt *BucketGetOptions) (*Bucket
|
||||
return &res, resp, err
|
||||
}
|
||||
|
||||
// BucketPutOptions ...
|
||||
// BucketPutOptions is same to the ACLHeaderOptions
|
||||
type BucketPutOptions ACLHeaderOptions
|
||||
|
||||
// Put Bucket请求可以在指定账号下创建一个Bucket。
|
||||
@@ -98,9 +96,9 @@ func (s *BucketService) Head(ctx context.Context) (*Response, error) {
|
||||
return resp, err
|
||||
}
|
||||
|
||||
// Bucket ...
|
||||
// Bucket is the meta info of Bucket
|
||||
type Bucket struct {
|
||||
Name string
|
||||
Region string `xml:"Location,omitempty"`
|
||||
Name string
|
||||
Region string `xml:"Location,omitempty"`
|
||||
CreationDate string `xml:",omitempty"`
|
||||
}
|
||||
|
||||
@@ -5,7 +5,7 @@ import (
|
||||
"net/http"
|
||||
)
|
||||
|
||||
// BucketGetACLResult ...
|
||||
// BucketGetACLResult is same to the ACLXml
|
||||
type BucketGetACLResult ACLXml
|
||||
|
||||
// GetACL 使用API读取Bucket的ACL表,只有所有者有权操作。
|
||||
@@ -23,7 +23,7 @@ func (s *BucketService) GetACL(ctx context.Context) (*BucketGetACLResult, *Respo
|
||||
return &res, resp, err
|
||||
}
|
||||
|
||||
// BucketPutACLOptions ...
|
||||
// BucketPutACLOptions is the option of PutBucketACL
|
||||
type BucketPutACLOptions struct {
|
||||
Header *ACLHeaderOptions `url:"-" xml:"-"`
|
||||
Body *ACLXml `url:"-" header:"-"`
|
||||
|
||||
@@ -6,7 +6,7 @@ import (
|
||||
"net/http"
|
||||
)
|
||||
|
||||
// BucketCORSRule ...
|
||||
// BucketCORSRule is the rule of BucketCORS
|
||||
type BucketCORSRule struct {
|
||||
ID string `xml:"ID,omitempty"`
|
||||
AllowedMethods []string `xml:"AllowedMethod"`
|
||||
@@ -16,15 +16,13 @@ type BucketCORSRule struct {
|
||||
ExposeHeaders []string `xml:"ExposeHeader,omitempty"`
|
||||
}
|
||||
|
||||
// BucketGetCORSResult ...
|
||||
// BucketGetCORSResult is the result of GetBucketCORS
|
||||
type BucketGetCORSResult struct {
|
||||
XMLName xml.Name `xml:"CORSConfiguration"`
|
||||
Rules []BucketCORSRule `xml:"CORSRule,omitempty"`
|
||||
}
|
||||
|
||||
// GetCORS ...
|
||||
//
|
||||
// Get Bucket CORS实现跨域访问配置读取。
|
||||
// GetCORS 实现 Bucket 跨域访问配置读取。
|
||||
//
|
||||
// https://www.qcloud.com/document/product/436/8274
|
||||
func (s *BucketService) GetCORS(ctx context.Context) (*BucketGetCORSResult, *Response, error) {
|
||||
@@ -39,15 +37,13 @@ func (s *BucketService) GetCORS(ctx context.Context) (*BucketGetCORSResult, *Res
|
||||
return &res, resp, err
|
||||
}
|
||||
|
||||
// BucketPutCORSOptions ...
|
||||
// BucketPutCORSOptions is the option of PutBucketCORS
|
||||
type BucketPutCORSOptions struct {
|
||||
XMLName xml.Name `xml:"CORSConfiguration"`
|
||||
Rules []BucketCORSRule `xml:"CORSRule,omitempty"`
|
||||
}
|
||||
|
||||
// PutCORS ...
|
||||
//
|
||||
// Put Bucket CORS实现跨域访问设置,您可以通过传入XML格式的配置文件实现配置,文件大小限制为64 KB。
|
||||
// PutCORS 实现 Bucket 跨域访问设置,您可以通过传入XML格式的配置文件实现配置,文件大小限制为64 KB。
|
||||
//
|
||||
// https://www.qcloud.com/document/product/436/8279
|
||||
func (s *BucketService) PutCORS(ctx context.Context, opt *BucketPutCORSOptions) (*Response, error) {
|
||||
@@ -61,9 +57,7 @@ func (s *BucketService) PutCORS(ctx context.Context, opt *BucketPutCORSOptions)
|
||||
return resp, err
|
||||
}
|
||||
|
||||
// DeleteCORS ...
|
||||
//
|
||||
// Delete Bucket CORS实现跨域访问配置删除。
|
||||
// DeleteCORS 实现 Bucket 跨域访问配置删除。
|
||||
//
|
||||
// https://www.qcloud.com/document/product/436/8283
|
||||
func (s *BucketService) DeleteCORS(ctx context.Context) (*Response, error) {
|
||||
|
||||
@@ -5,51 +5,47 @@ import (
|
||||
"encoding/xml"
|
||||
"net/http"
|
||||
)
|
||||
// BucketLifecycleFilter ...
|
||||
|
||||
// BucketLifecycleFilter is the param of BucketLifecycleRule
|
||||
type BucketLifecycleFilter struct {
|
||||
Prefix string `xml:"Prefix,omitempty"`
|
||||
Prefix string `xml:"Prefix,omitempty"`
|
||||
}
|
||||
|
||||
// BucketLifecycleExpiration ...
|
||||
// BucketLifecycleExpiration is the param of BucketLifecycleRule
|
||||
type BucketLifecycleExpiration struct {
|
||||
Date string `xml:"Date,omitempty"`
|
||||
Days int `xml:"Days,omitempty"`
|
||||
}
|
||||
|
||||
// BucketLifecycleTransition ...
|
||||
// BucketLifecycleTransition is the param of BucketLifecycleRule
|
||||
type BucketLifecycleTransition struct {
|
||||
Date string `xml:"Date,omitempty"`
|
||||
Days int `xml:"Days,omitempty"`
|
||||
StorageClass string
|
||||
}
|
||||
|
||||
// BucketLifecycleAbortIncompleteMultipartUpload ...
|
||||
// BucketLifecycleAbortIncompleteMultipartUpload is the param of BucketLifecycleRule
|
||||
type BucketLifecycleAbortIncompleteMultipartUpload struct {
|
||||
DaysAfterInitiation string `xml:"DaysAfterInititation,omitempty"`
|
||||
}
|
||||
|
||||
// BucketLifecycleRule ...
|
||||
// BucketLifecycleRule is the rule of BucketLifecycle
|
||||
type BucketLifecycleRule struct {
|
||||
ID string `xml:"ID,omitempty"`
|
||||
Status string
|
||||
Filter *BucketLifecycleFilter `xml:"Filter,omitempty"`
|
||||
Filter *BucketLifecycleFilter `xml:"Filter,omitempty"`
|
||||
Transition *BucketLifecycleTransition `xml:"Transition,omitempty"`
|
||||
Expiration *BucketLifecycleExpiration `xml:"Expiration,omitempty"`
|
||||
AbortIncompleteMultipartUpload *BucketLifecycleAbortIncompleteMultipartUpload `xml:"AbortIncompleteMultipartUpload,omitempty"`
|
||||
}
|
||||
|
||||
// BucketGetLifecycleResult ...
|
||||
// BucketGetLifecycleResult is the result of BucketGetLifecycle
|
||||
type BucketGetLifecycleResult struct {
|
||||
XMLName xml.Name `xml:"LifecycleConfiguration"`
|
||||
Rules []BucketLifecycleRule `xml:"Rule,omitempty"`
|
||||
}
|
||||
|
||||
// GetLifecycle ...
|
||||
//
|
||||
// Get Bucket Lifecycle请求实现读取生命周期管理的配置。当配置不存在时,返回404 Not Found。
|
||||
//
|
||||
// (目前只支持华南园区)
|
||||
//
|
||||
// GetLifecycle 请求实现读取生命周期管理的配置。当配置不存在时,返回404 Not Found。
|
||||
// https://www.qcloud.com/document/product/436/8278
|
||||
func (s *BucketService) GetLifecycle(ctx context.Context) (*BucketGetLifecycleResult, *Response, error) {
|
||||
var res BucketGetLifecycleResult
|
||||
@@ -63,20 +59,14 @@ func (s *BucketService) GetLifecycle(ctx context.Context) (*BucketGetLifecycleRe
|
||||
return &res, resp, err
|
||||
}
|
||||
|
||||
// BucketPutLifecycleOptions ...
|
||||
// BucketPutLifecycleOptions is the option of PutBucketLifecycle
|
||||
type BucketPutLifecycleOptions struct {
|
||||
XMLName xml.Name `xml:"LifecycleConfiguration"`
|
||||
Rules []BucketLifecycleRule `xml:"Rule,omitempty"`
|
||||
}
|
||||
|
||||
// PutLifecycle ...
|
||||
//
|
||||
// Put Bucket Lifecycle请求实现设置生命周期管理的功能。您可以通过该请求实现数据的生命周期管理配置和定期删除。
|
||||
//
|
||||
// PutLifecycle 请求实现设置生命周期管理的功能。您可以通过该请求实现数据的生命周期管理配置和定期删除。
|
||||
// 此请求为覆盖操作,上传新的配置文件将覆盖之前的配置文件。生命周期管理对文件和文件夹同时生效。
|
||||
//
|
||||
// (目前只支持华南园区)
|
||||
//
|
||||
// https://www.qcloud.com/document/product/436/8280
|
||||
func (s *BucketService) PutLifecycle(ctx context.Context, opt *BucketPutLifecycleOptions) (*Response, error) {
|
||||
sendOpt := sendOptions{
|
||||
@@ -89,12 +79,7 @@ func (s *BucketService) PutLifecycle(ctx context.Context, opt *BucketPutLifecycl
|
||||
return resp, err
|
||||
}
|
||||
|
||||
// DeleteLifecycle ...
|
||||
//
|
||||
// Delete Bucket Lifecycle请求实现删除生命周期管理。
|
||||
//
|
||||
// (目前只支持华南园区)
|
||||
//
|
||||
// DeleteLifecycle 请求实现删除生命周期管理。
|
||||
// https://www.qcloud.com/document/product/436/8284
|
||||
func (s *BucketService) DeleteLifecycle(ctx context.Context) (*Response, error) {
|
||||
sendOpt := sendOptions{
|
||||
|
||||
@@ -6,15 +6,13 @@ import (
|
||||
"net/http"
|
||||
)
|
||||
|
||||
// BucketGetLocationResult ...
|
||||
// BucketGetLocationResult is the result of BucketGetLocation
|
||||
type BucketGetLocationResult struct {
|
||||
XMLName xml.Name `xml:"LocationConstraint"`
|
||||
Location string `xml:",chardata"`
|
||||
}
|
||||
|
||||
// GetLocation ...
|
||||
//
|
||||
// Get Bucket Location接口获取Bucket所在地域信息,只有Bucket所有者有权限读取信息。
|
||||
// GetLocation 接口获取Bucket所在地域信息,只有Bucket所有者有权限读取信息。
|
||||
//
|
||||
// https://www.qcloud.com/document/product/436/8275
|
||||
func (s *BucketService) GetLocation(ctx context.Context) (*BucketGetLocationResult, *Response, error) {
|
||||
|
||||
@@ -6,7 +6,7 @@ import (
|
||||
"net/http"
|
||||
)
|
||||
|
||||
// ListMultipartUploadsResult ...
|
||||
// ListMultipartUploadsResult is the result of ListMultipartUploads
|
||||
type ListMultipartUploadsResult struct {
|
||||
XMLName xml.Name `xml:"ListMultipartUploadsResult"`
|
||||
Bucket string `xml:"Bucket"`
|
||||
@@ -30,7 +30,7 @@ type ListMultipartUploadsResult struct {
|
||||
CommonPrefixes []string `xml:"CommonPrefixs>Prefix,omitempty"`
|
||||
}
|
||||
|
||||
// ListMultipartUploadsOptions ...
|
||||
// ListMultipartUploadsOptions is the option of ListMultipartUploads
|
||||
type ListMultipartUploadsOptions struct {
|
||||
Delimiter string `url:"delimiter,omitempty"`
|
||||
EncodingType string `url:"encoding-type,omitempty"`
|
||||
@@ -40,9 +40,7 @@ type ListMultipartUploadsOptions struct {
|
||||
UploadIDMarker string `url:"upload-id-marker,omitempty"`
|
||||
}
|
||||
|
||||
// ListMultipartUploads ...
|
||||
//
|
||||
// List Multipart Uploads用来查询正在进行中的分块上传。单次最多列出1000个正在进行中的分块上传。
|
||||
// ListMultipartUploads 用来查询正在进行中的分块上传。单次最多列出1000个正在进行中的分块上传。
|
||||
//
|
||||
// https://www.qcloud.com/document/product/436/7736
|
||||
func (s *BucketService) ListMultipartUploads(ctx context.Context, opt *ListMultipartUploadsOptions) (*ListMultipartUploadsResult, *Response, error) {
|
||||
|
||||
@@ -6,21 +6,19 @@ import (
|
||||
"net/http"
|
||||
)
|
||||
|
||||
// BucketTaggingTag ...
|
||||
// BucketTaggingTag is the tag of BucketTagging
|
||||
type BucketTaggingTag struct {
|
||||
Key string
|
||||
Value string
|
||||
}
|
||||
|
||||
// BucketGetTaggingResult ...
|
||||
// BucketGetTaggingResult is the result of BucketGetTagging
|
||||
type BucketGetTaggingResult struct {
|
||||
XMLName xml.Name `xml:"Tagging"`
|
||||
TagSet []BucketTaggingTag `xml:"TagSet>Tag,omitempty"`
|
||||
}
|
||||
|
||||
// GetTagging ...
|
||||
//
|
||||
// Get Bucket Tagging接口实现获取指定Bucket的标签。
|
||||
// GetTagging 接口实现获取指定Bucket的标签。
|
||||
//
|
||||
// https://www.qcloud.com/document/product/436/8277
|
||||
func (s *BucketService) GetTagging(ctx context.Context) (*BucketGetTaggingResult, *Response, error) {
|
||||
@@ -35,15 +33,13 @@ func (s *BucketService) GetTagging(ctx context.Context) (*BucketGetTaggingResult
|
||||
return &res, resp, err
|
||||
}
|
||||
|
||||
// BucketPutTaggingOptions ...
|
||||
// BucketPutTaggingOptions is the option of BucketPutTagging
|
||||
type BucketPutTaggingOptions struct {
|
||||
XMLName xml.Name `xml:"Tagging"`
|
||||
TagSet []BucketTaggingTag `xml:"TagSet>Tag,omitempty"`
|
||||
}
|
||||
|
||||
// PutTagging ...
|
||||
//
|
||||
// Put Bucket Tagging接口实现给用指定Bucket打标签。用来组织和管理相关Bucket。
|
||||
// PutTagging 接口实现给用指定Bucket打标签。用来组织和管理相关Bucket。
|
||||
//
|
||||
// 当该请求设置相同Key名称,不同Value时,会返回400。请求成功,则返回204。
|
||||
//
|
||||
@@ -59,9 +55,7 @@ func (s *BucketService) PutTagging(ctx context.Context, opt *BucketPutTaggingOpt
|
||||
return resp, err
|
||||
}
|
||||
|
||||
// DeleteTagging ...
|
||||
//
|
||||
// Delete Bucket Tagging接口实现删除指定Bucket的标签。
|
||||
// DeleteTagging 接口实现删除指定Bucket的标签。
|
||||
//
|
||||
// https://www.qcloud.com/document/product/436/8286
|
||||
func (s *BucketService) DeleteTagging(ctx context.Context) (*Response, error) {
|
||||
|
||||
16
cos.go
16
cos.go
@@ -20,7 +20,7 @@ import (
|
||||
)
|
||||
|
||||
const (
|
||||
// Version ...
|
||||
// Version current go sdk version
|
||||
Version = "0.7.3"
|
||||
userAgent = "cos-go-sdk-v5/" + Version
|
||||
contentTypeXML = "application/xml"
|
||||
@@ -65,7 +65,7 @@ func NewBucketURL(bucketName, region string, secure bool) *url.URL {
|
||||
return u
|
||||
}
|
||||
|
||||
// A Client manages communication with the COS API.
|
||||
// Client is a client manages communication with the COS API.
|
||||
type Client struct {
|
||||
client *http.Client
|
||||
|
||||
@@ -295,14 +295,14 @@ func addHeaderOptions(header http.Header, opt interface{}) (http.Header, error)
|
||||
return header, nil
|
||||
}
|
||||
|
||||
// Owner ...
|
||||
// Owner defines Bucket/Object's owner
|
||||
type Owner struct {
|
||||
UIN string `xml:"uin,omitempty"`
|
||||
ID string `xml:",omitempty"`
|
||||
DisplayName string `xml:",omitempty"`
|
||||
}
|
||||
|
||||
// Initiator ...
|
||||
// Initiator same to the Owner struct
|
||||
type Initiator Owner
|
||||
|
||||
// Response API 响应
|
||||
@@ -316,7 +316,7 @@ func newResponse(resp *http.Response) *Response {
|
||||
}
|
||||
}
|
||||
|
||||
// ACLHeaderOptions ...
|
||||
// ACLHeaderOptions is the option of ACLHeader
|
||||
type ACLHeaderOptions struct {
|
||||
XCosACL string `header:"x-cos-acl,omitempty" url:"-" xml:"-"`
|
||||
XCosGrantRead string `header:"x-cos-grant-read,omitempty" url:"-" xml:"-"`
|
||||
@@ -324,7 +324,7 @@ type ACLHeaderOptions struct {
|
||||
XCosGrantFullControl string `header:"x-cos-grant-full-control,omitempty" url:"-" xml:"-"`
|
||||
}
|
||||
|
||||
// ACLGrantee ...
|
||||
// ACLGrantee is the param of ACLGrant
|
||||
type ACLGrantee struct {
|
||||
Type string `xml:"type,attr"`
|
||||
UIN string `xml:"uin,omitempty"`
|
||||
@@ -333,13 +333,13 @@ type ACLGrantee struct {
|
||||
SubAccount string `xml:"Subaccount,omitempty"`
|
||||
}
|
||||
|
||||
// ACLGrant ...
|
||||
// ACLGrant is the param of ACLXml
|
||||
type ACLGrant struct {
|
||||
Grantee *ACLGrantee
|
||||
Permission string
|
||||
}
|
||||
|
||||
// ACLXml ...
|
||||
// ACLXml is the ACL body struct
|
||||
type ACLXml struct {
|
||||
XMLName xml.Name `xml:"AccessControlPolicy"`
|
||||
Owner *Owner
|
||||
|
||||
24
doc.go
24
doc.go
@@ -1,29 +1,19 @@
|
||||
/*
|
||||
Package cos 腾讯云对象存储服务 COS(Cloud Object Storage) Go SDK。
|
||||
|
||||
|
||||
COS API Version
|
||||
|
||||
封装了 V5 版本的 XML API 。
|
||||
|
||||
|
||||
Usage
|
||||
|
||||
Package cos 腾讯云对象存储服务 COS(Cloud Object Storage) Go SDK, 封装了 V5 版本的 XML API。
|
||||
在项目的 example 目录下有各个 API 的使用示例 。
|
||||
|
||||
|
||||
Authentication
|
||||
|
||||
默认所有 API 都是匿名访问. 如果想添加认证信息的话,可以通过自定义一个 http.Client 来添加认证信息.
|
||||
|
||||
比如, 使用内置的 AuthorizationTransport 来为请求增加 Authorization Header 签名信息:
|
||||
|
||||
client := cos.NewClient(b, &http.Client{
|
||||
Transport: &cos.AuthorizationTransport{
|
||||
SecretID: "COS_SECRETID",
|
||||
SecretKey: "COS_SECRETKEY",
|
||||
},
|
||||
})
|
||||
client := cos.NewClient(b, &http.Client{
|
||||
Transport: &cos.AuthorizationTransport{
|
||||
SecretID: "COS_SECRETID",
|
||||
SecretKey: "COS_SECRETKEY",
|
||||
},
|
||||
})
|
||||
|
||||
*/
|
||||
package cos
|
||||
|
||||
6
error.go
6
error.go
@@ -20,14 +20,14 @@ type ErrorResponse struct {
|
||||
TraceID string `xml:"TraceId,omitempty"`
|
||||
}
|
||||
|
||||
// Error ...
|
||||
// Error returns the error msg
|
||||
func (r *ErrorResponse) Error() string {
|
||||
RequestID := r.RequestID
|
||||
if (RequestID == "") {
|
||||
if RequestID == "" {
|
||||
RequestID = r.Response.Header["X-Cos-Request-Id"][0]
|
||||
}
|
||||
TraceID := r.TraceID
|
||||
if (TraceID == "") {
|
||||
if TraceID == "" {
|
||||
TraceID = r.Response.Header["X-Cos-Trace-Id"][0]
|
||||
}
|
||||
return fmt.Sprintf("%v %v: %d %v(Message: %v, RequestId: %v, TraceId: %v)",
|
||||
|
||||
37
object.go
37
object.go
@@ -9,12 +9,10 @@ import (
|
||||
"strings"
|
||||
)
|
||||
|
||||
// ObjectService ...
|
||||
//
|
||||
// Object 相关 API
|
||||
// ObjectService 相关 API
|
||||
type ObjectService service
|
||||
|
||||
// ObjectGetOptions ...
|
||||
// ObjectGetOptions is the option of GetObject
|
||||
type ObjectGetOptions struct {
|
||||
ResponseContentType string `url:"response-content-type,omitempty" header:"-"`
|
||||
ResponseContentLanguage string `url:"response-content-language,omitempty" header:"-"`
|
||||
@@ -43,7 +41,7 @@ func (s *ObjectService) Get(ctx context.Context, name string, opt *ObjectGetOpti
|
||||
return resp, err
|
||||
}
|
||||
|
||||
// ObjectPutHeaderOptions ...
|
||||
// ObjectPutHeaderOptions the options of header of the put object
|
||||
type ObjectPutHeaderOptions struct {
|
||||
CacheControl string `header:"Cache-Control,omitempty" url:"-"`
|
||||
ContentDisposition string `header:"Content-Disposition,omitempty" url:"-"`
|
||||
@@ -60,7 +58,7 @@ type ObjectPutHeaderOptions struct {
|
||||
//XCosObjectType string `header:"x-cos-object-type,omitempty" url:"-"`
|
||||
}
|
||||
|
||||
// ObjectPutOptions ...
|
||||
// ObjectPutOptions the options of put object
|
||||
type ObjectPutOptions struct {
|
||||
*ACLHeaderOptions `header:",omitempty" url:"-" xml:"-"`
|
||||
*ObjectPutHeaderOptions `header:",omitempty" url:"-" xml:"-"`
|
||||
@@ -83,7 +81,7 @@ func (s *ObjectService) Put(ctx context.Context, name string, r io.Reader, opt *
|
||||
return resp, err
|
||||
}
|
||||
|
||||
// ObjectCopyHeaderOptions ...
|
||||
// ObjectCopyHeaderOptions is the head option of the Copy
|
||||
type ObjectCopyHeaderOptions struct {
|
||||
XCosMetadataDirective string `header:"x-cos-metadata-directive,omitempty" url:"-" xml:"-"`
|
||||
XCosCopySourceIfModifiedSince string `header:"x-cos-copy-source-If-Modified-Since,omitempty" url:"-" xml:"-"`
|
||||
@@ -96,21 +94,20 @@ type ObjectCopyHeaderOptions struct {
|
||||
XCosCopySource string `header:"x-cos-copy-source" url:"-" xml:"-"`
|
||||
}
|
||||
|
||||
// ObjectCopyOptions ...
|
||||
// ObjectCopyOptions is the option of Copy, choose header or body
|
||||
type ObjectCopyOptions struct {
|
||||
*ObjectCopyHeaderOptions `header:",omitempty" url:"-" xml:"-"`
|
||||
*ACLHeaderOptions `header:",omitempty" url:"-" xml:"-"`
|
||||
}
|
||||
|
||||
// ObjectCopyResult ...
|
||||
// ObjectCopyResult is the result of Copy
|
||||
type ObjectCopyResult struct {
|
||||
XMLName xml.Name `xml:"CopyObjectResult"`
|
||||
ETag string `xml:"ETag,omitempty"`
|
||||
LastModified string `xml:"LastModified,omitempty"`
|
||||
}
|
||||
|
||||
// Copy ...
|
||||
// Put Object Copy 请求实现将一个文件从源路径复制到目标路径。建议文件大小 1M 到 5G,
|
||||
// Copy 调用 PutObjectCopy 请求实现将一个文件从源路径复制到目标路径。建议文件大小 1M 到 5G,
|
||||
// 超过 5G 的文件请使用分块上传 Upload - Copy。在拷贝的过程中,文件元属性和 ACL 可以被修改。
|
||||
//
|
||||
// 用户可以通过该接口实现文件移动,文件重命名,修改文件属性和创建副本。
|
||||
@@ -153,7 +150,7 @@ func (s *ObjectService) Delete(ctx context.Context, name string) (*Response, err
|
||||
return resp, err
|
||||
}
|
||||
|
||||
// ObjectHeadOptions ...
|
||||
// ObjectHeadOptions is the option of HeadObject
|
||||
type ObjectHeadOptions struct {
|
||||
IfModifiedSince string `url:"-" header:"If-Modified-Since,omitempty"`
|
||||
}
|
||||
@@ -176,7 +173,7 @@ func (s *ObjectService) Head(ctx context.Context, name string, opt *ObjectHeadOp
|
||||
return resp, err
|
||||
}
|
||||
|
||||
// ObjectOptionsOptions ...
|
||||
// ObjectOptionsOptions is the option of object options
|
||||
type ObjectOptionsOptions struct {
|
||||
Origin string `url:"-" header:"Origin"`
|
||||
AccessControlRequestMethod string `url:"-" header:"Access-Control-Request-Method"`
|
||||
@@ -199,7 +196,6 @@ func (s *ObjectService) Options(ctx context.Context, name string, opt *ObjectOpt
|
||||
return resp, err
|
||||
}
|
||||
|
||||
// Append ...
|
||||
// TODO Append 接口在优化未开放使用
|
||||
//
|
||||
// Append请求可以将一个文件(Object)以分块追加的方式上传至 Bucket 中。使用Append Upload的文件必须事前被设定为Appendable。
|
||||
@@ -231,7 +227,7 @@ func (s *ObjectService) Options(ctx context.Context, name string, opt *ObjectOpt
|
||||
// return resp, err
|
||||
// }
|
||||
|
||||
// ObjectDeleteMultiOptions ...
|
||||
// ObjectDeleteMultiOptions is the option of DeleteMulti
|
||||
type ObjectDeleteMultiOptions struct {
|
||||
XMLName xml.Name `xml:"Delete" header:"-"`
|
||||
Quiet bool `xml:"Quiet" header:"-"`
|
||||
@@ -239,7 +235,7 @@ type ObjectDeleteMultiOptions struct {
|
||||
//XCosSha1 string `xml:"-" header:"x-cos-sha1"`
|
||||
}
|
||||
|
||||
// ObjectDeleteMultiResult ...
|
||||
// ObjectDeleteMultiResult is the result of DeleteMulti
|
||||
type ObjectDeleteMultiResult struct {
|
||||
XMLName xml.Name `xml:"DeleteResult"`
|
||||
DeletedObjects []Object `xml:"Deleted,omitempty"`
|
||||
@@ -250,14 +246,9 @@ type ObjectDeleteMultiResult struct {
|
||||
} `xml:"Error,omitempty"`
|
||||
}
|
||||
|
||||
// DeleteMulti ...
|
||||
//
|
||||
// Delete Multiple Object请求实现批量删除文件,最大支持单次删除1000个文件。
|
||||
// DeleteMulti 请求实现批量删除文件,最大支持单次删除1000个文件。
|
||||
// 对于返回结果,COS提供Verbose和Quiet两种结果模式。Verbose模式将返回每个Object的删除结果;
|
||||
// Quiet模式只返回报错的Object信息。
|
||||
//
|
||||
// 此请求必须携带x-cos-sha1用来校验Body的完整性。
|
||||
//
|
||||
// https://www.qcloud.com/document/product/436/8289
|
||||
func (s *ObjectService) DeleteMulti(ctx context.Context, opt *ObjectDeleteMultiOptions) (*ObjectDeleteMultiResult, *Response, error) {
|
||||
var res ObjectDeleteMultiResult
|
||||
@@ -272,7 +263,7 @@ func (s *ObjectService) DeleteMulti(ctx context.Context, opt *ObjectDeleteMultiO
|
||||
return &res, resp, err
|
||||
}
|
||||
|
||||
// Object ...
|
||||
// Object is the meta info of the object
|
||||
type Object struct {
|
||||
Key string `xml:",omitempty"`
|
||||
ETag string `xml:",omitempty"`
|
||||
|
||||
@@ -5,7 +5,7 @@ import (
|
||||
"net/http"
|
||||
)
|
||||
|
||||
// ObjectGetACLResult ...
|
||||
// ObjectGetACLResult is the result of GetObjectACL
|
||||
type ObjectGetACLResult ACLXml
|
||||
|
||||
// GetACL Get Object ACL接口实现使用API读取Object的ACL表,只有所有者有权操作。
|
||||
@@ -23,7 +23,7 @@ func (s *ObjectService) GetACL(ctx context.Context, name string) (*ObjectGetACLR
|
||||
return &res, resp, err
|
||||
}
|
||||
|
||||
// ObjectPutACLOptions ...
|
||||
// ObjectPutACLOptions the options of put object acl
|
||||
type ObjectPutACLOptions struct {
|
||||
Header *ACLHeaderOptions `url:"-" xml:"-"`
|
||||
Body *ACLXml `url:"-" header:"-"`
|
||||
|
||||
@@ -8,13 +8,13 @@ import (
|
||||
"net/http"
|
||||
)
|
||||
|
||||
// InitiateMultipartUploadOptions ...
|
||||
// InitiateMultipartUploadOptions is the option of InitateMultipartUpload
|
||||
type InitiateMultipartUploadOptions struct {
|
||||
*ACLHeaderOptions
|
||||
*ObjectPutHeaderOptions
|
||||
}
|
||||
|
||||
// InitiateMultipartUploadResult ...
|
||||
// InitiateMultipartUploadResult is the result of InitateMultipartUpload
|
||||
type InitiateMultipartUploadResult struct {
|
||||
XMLName xml.Name `xml:"InitiateMultipartUploadResult"`
|
||||
Bucket string
|
||||
@@ -22,9 +22,7 @@ type InitiateMultipartUploadResult struct {
|
||||
UploadID string `xml:"UploadId"`
|
||||
}
|
||||
|
||||
// InitiateMultipartUpload ...
|
||||
//
|
||||
// Initiate Multipart Upload请求实现初始化分片上传,成功执行此请求以后会返回Upload ID用于后续的Upload Part请求。
|
||||
// InitiateMultipartUpload 请求实现初始化分片上传,成功执行此请求以后会返回Upload ID用于后续的Upload Part请求。
|
||||
//
|
||||
// https://www.qcloud.com/document/product/436/7746
|
||||
func (s *ObjectService) InitiateMultipartUpload(ctx context.Context, name string, opt *InitiateMultipartUploadOptions) (*InitiateMultipartUploadResult, *Response, error) {
|
||||
@@ -40,17 +38,14 @@ func (s *ObjectService) InitiateMultipartUpload(ctx context.Context, name string
|
||||
return &res, resp, err
|
||||
}
|
||||
|
||||
// ObjectUploadPartOptions ...
|
||||
// ObjectUploadPartOptions is the options of upload-part
|
||||
type ObjectUploadPartOptions struct {
|
||||
Expect string `header:"Expect,omitempty" url:"-"`
|
||||
XCosContentSHA1 string `header:"x-cos-content-sha1" url:"-"`
|
||||
ContentLength int `header:"Content-Length,omitempty" url:"-"`
|
||||
}
|
||||
|
||||
|
||||
// UploadPart ...
|
||||
//
|
||||
// Upload Part请求实现在初始化以后的分块上传,支持的块的数量为1到10000,块的大小为1 MB 到5 GB。
|
||||
// UploadPart 请求实现在初始化以后的分块上传,支持的块的数量为1到10000,块的大小为1 MB 到5 GB。
|
||||
// 在每次请求Upload Part时候,需要携带partNumber和uploadID,partNumber为块的编号,支持乱序上传。
|
||||
//
|
||||
// 当传入uploadID和partNumber都相同的时候,后传入的块将覆盖之前传入的块。当uploadID不存在时会返回404错误,NoSuchUpload.
|
||||
@@ -71,14 +66,14 @@ func (s *ObjectService) UploadPart(ctx context.Context, name, uploadID string, p
|
||||
return resp, err
|
||||
}
|
||||
|
||||
// ObjectListPartsOptions ...
|
||||
// ObjectListPartsOptions is the option of ListParts
|
||||
type ObjectListPartsOptions struct {
|
||||
EncodingType string `url:"Encoding-type,omitempty"`
|
||||
MaxParts int `url:"max-parts,omitempty"`
|
||||
PartNumberMarker int `url:"part-number-marker,omitempty"`
|
||||
}
|
||||
|
||||
// ObjectListPartsResult ...
|
||||
// ObjectListPartsResult is the result of ListParts
|
||||
type ObjectListPartsResult struct {
|
||||
XMLName xml.Name `xml:"ListPartsResult"`
|
||||
Bucket string
|
||||
@@ -95,9 +90,7 @@ type ObjectListPartsResult struct {
|
||||
Parts []Object `xml:"Part,omitempty"`
|
||||
}
|
||||
|
||||
// ListParts ...
|
||||
//
|
||||
// List Parts用来查询特定分块上传中的已上传的块。
|
||||
// ListParts 用来查询特定分块上传中的已上传的块。
|
||||
//
|
||||
// https://www.qcloud.com/document/product/436/7747
|
||||
func (s *ObjectService) ListParts(ctx context.Context, name, uploadID string) (*ObjectListPartsResult, *Response, error) {
|
||||
@@ -113,13 +106,13 @@ func (s *ObjectService) ListParts(ctx context.Context, name, uploadID string) (*
|
||||
return &res, resp, err
|
||||
}
|
||||
|
||||
// CompleteMultipartUploadOptions ...
|
||||
// CompleteMultipartUploadOptions is the option of CompleteMultipartUpload
|
||||
type CompleteMultipartUploadOptions struct {
|
||||
XMLName xml.Name `xml:"CompleteMultipartUpload"`
|
||||
Parts []Object `xml:"Part"`
|
||||
}
|
||||
|
||||
// CompleteMultipartUploadResult ...
|
||||
// CompleteMultipartUploadResult is the result CompleteMultipartUpload
|
||||
type CompleteMultipartUploadResult struct {
|
||||
XMLName xml.Name `xml:"CompleteMultipartUploadResult"`
|
||||
Location string
|
||||
@@ -128,9 +121,7 @@ type CompleteMultipartUploadResult struct {
|
||||
ETag string
|
||||
}
|
||||
|
||||
// CompleteMultipartUpload ...
|
||||
//
|
||||
// Complete Multipart Upload用来实现完成整个分块上传。当您已经使用Upload Parts上传所有块以后,你可以用该API完成上传。
|
||||
// CompleteMultipartUpload 用来实现完成整个分块上传。当您已经使用Upload Parts上传所有块以后,你可以用该API完成上传。
|
||||
// 在使用该API时,您必须在Body中给出每一个块的PartNumber和ETag,用来校验块的准确性。
|
||||
//
|
||||
// 由于分块上传的合并需要数分钟时间,因而当合并分块开始的时候,COS就立即返回200的状态码,在合并的过程中,
|
||||
@@ -158,9 +149,7 @@ func (s *ObjectService) CompleteMultipartUpload(ctx context.Context, name, uploa
|
||||
return &res, resp, err
|
||||
}
|
||||
|
||||
// AbortMultipartUpload ...
|
||||
//
|
||||
// Abort Multipart Upload用来实现舍弃一个分块上传并删除已上传的块。当您调用Abort Multipart Upload时,
|
||||
// AbortMultipartUpload 用来实现舍弃一个分块上传并删除已上传的块。当您调用Abort Multipart Upload时,
|
||||
// 如果有正在使用这个Upload Parts上传块的请求,则Upload Parts会返回失败。当该UploadID不存在时,会返回404 NoSuchUpload。
|
||||
//
|
||||
// 建议您及时完成分块上传或者舍弃分块上传,因为已上传但是未终止的块会占用存储空间进而产生存储费用。
|
||||
|
||||
@@ -6,12 +6,10 @@ import (
|
||||
"net/http"
|
||||
)
|
||||
|
||||
// ServiceService ...
|
||||
//
|
||||
// Service 相关 API
|
||||
type ServiceService service
|
||||
|
||||
// ServiceGetResult ...
|
||||
// ServiceGetResult is the result of Get Service
|
||||
type ServiceGetResult struct {
|
||||
XMLName xml.Name `xml:"ListAllMyBucketsResult"`
|
||||
Owner *Owner `xml:"Owner"`
|
||||
|
||||
Reference in New Issue
Block a user