Browse Source
改进:增加对Upload part - copy API的支持
改进:增加对Upload part - copy API的支持
API文档:https://cloud.tencent.com/document/product/436/8287tags/v0.7.8
Qiu Jian
5 years ago
3 changed files with 158 additions and 0 deletions
@ -0,0 +1,68 @@ |
|||
package main |
|||
|
|||
import ( |
|||
"context" |
|||
"fmt" |
|||
"os" |
|||
|
|||
"net/url" |
|||
|
|||
"net/http" |
|||
|
|||
"github.com/tencentyun/cos-go-sdk-v5" |
|||
"github.com/tencentyun/cos-go-sdk-v5/debug" |
|||
) |
|||
|
|||
func initUpload(c *cos.Client, name string) *cos.InitiateMultipartUploadResult { |
|||
v, _, err := c.Object.InitiateMultipartUpload(context.Background(), name, nil) |
|||
if err != nil { |
|||
panic(err) |
|||
} |
|||
fmt.Printf("%#v\n", v) |
|||
return v |
|||
} |
|||
|
|||
func main() { |
|||
u, _ := url.Parse("https://test-1253846586.cos.ap-guangzhou.myqcloud.com") |
|||
b := &cos.BaseURL{BucketURL: u} |
|||
c := cos.NewClient(b, &http.Client{ |
|||
Transport: &cos.AuthorizationTransport{ |
|||
SecretID: os.Getenv("COS_SECRETID"), |
|||
SecretKey: os.Getenv("COS_SECRETKEY"), |
|||
Transport: &debug.DebugRequestTransport{ |
|||
RequestHeader: true, |
|||
RequestBody: true, |
|||
ResponseHeader: true, |
|||
ResponseBody: true, |
|||
}, |
|||
}, |
|||
}) |
|||
|
|||
sourceUrl := "test-1253846586.cos.ap-guangzhou.myqcloud.com/source/copy_multi_upload.go" |
|||
name := "test/test_multi_upload.go" |
|||
up := initUpload(c, name) |
|||
uploadID := up.UploadID |
|||
|
|||
opt := &cos.ObjectCopyPartOptions{} |
|||
res, _, err := c.Object.CopyPart( |
|||
context.Background(), name, uploadID, 1, sourceUrl, opt) |
|||
if err != nil { |
|||
panic(err) |
|||
} |
|||
fmt.Println("ETag:", res.ETag) |
|||
|
|||
completeOpt := &cos.CompleteMultipartUploadOptions{} |
|||
completeOpt.Parts = append(completeOpt.Parts, cos.Object{ |
|||
PartNumber: 1, |
|||
ETag: res.ETag, |
|||
}) |
|||
v, resp, err := c.Object.CompleteMultipartUpload( |
|||
context.Background(), name, uploadID, completeOpt, |
|||
) |
|||
if err != nil { |
|||
panic(err) |
|||
} |
|||
fmt.Printf("%s\n", resp.Status) |
|||
fmt.Printf("%#v\n", v) |
|||
fmt.Printf("%s\n", v.Location) |
|||
} |
Write
Preview
Loading…
Cancel
Save
Reference in new issue