Browse Source

update the comment for godoc

tags/v0.7.8
toranger 6 years ago
parent
commit
34cf1f303e
  1. 3
      auth.go
  2. 16
      bucket.go
  3. 4
      bucket_acl.go
  4. 18
      bucket_cors.go
  5. 41
      bucket_lifecycle.go
  6. 6
      bucket_location.go
  7. 8
      bucket_part.go
  8. 18
      bucket_tagging.go
  9. 16
      cos.go
  10. 24
      doc.go
  11. 6
      error.go
  12. 37
      object.go
  13. 4
      object_acl.go
  14. 35
      object_part.go
  15. 4
      service.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

@ -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"`
}

4
bucket_acl.go

@ -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:"-"`

18
bucket_cors.go

@ -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) {

41
bucket_lifecycle.go

@ -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
bucket_location.go

@ -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) {

8
bucket_part.go

@ -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) {

18
bucket_tagging.go

@ -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

@ -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

@ -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

@ -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

@ -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"`

4
object_acl.go

@ -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:"-"`

35
object_part.go

@ -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。
//
// 建议您及时完成分块上传或者舍弃分块上传,因为已上传但是未终止的块会占用存储空间进而产生存储费用。

4
service.go

@ -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"`

Loading…
Cancel
Save