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