Browse Source
			
			
			Merge pull request #54 from swordqiu/feature/qj-upload-part-copy-api
			
				
		Merge pull request #54 from swordqiu/feature/qj-upload-part-copy-api
	
		
	
			
				改进:增加对Upload part - copy API的支持tags/v0.7.8
							committed by
							
								
								GitHub
							
						
					
				
				
				  
				  No known key found for this signature in database
				  
				  	
						GPG Key ID: 4AEE18F83AFDEB23
				  	
				  
				
			
		
		
		
	
				 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