| 
						
						
							
								
							
						
						
					 | 
				
				 | 
				
					@ -907,6 +907,52 @@ func (s *CosTestSuite) TestAccelerate() { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						assert.Equal(s.T(), opt.Type, res.Type, "GetAccelerate Failed") | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					func (s *CosTestSuite) TestMultiCopy() { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						u := "http://" + kRepBucket + "-" + s.Appid + ".cos." + kRepRegion + ".myqcloud.com" | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						iu, _ := url.Parse(u) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						ib := &cos.BaseURL{BucketURL: iu} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						c := cos.NewClient(ib, &http.Client{ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							Transport: &cos.AuthorizationTransport{ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								SecretID:  os.Getenv("COS_SECRETID"), | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
								SecretKey: os.Getenv("COS_SECRETKEY"), | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							}, | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						}) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						opt := &cos.BucketPutOptions{ | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							XCosACL: "public-read", | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						// Notice in intranet the bucket host sometimes has i/o timeout problem
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						r, err := c.Bucket.Put(context.Background(), opt) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						if err != nil && r.StatusCode == 409 { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							fmt.Println("BucketAlreadyOwnedByYou") | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						} else if err != nil { | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
							assert.Nil(s.T(), err, "PutBucket Failed") | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						source := "test/objectMove1" + time.Now().Format(time.RFC3339) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						expected := "test" | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						f := strings.NewReader(expected) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						r, err = c.Object.Put(context.Background(), source, f, nil) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						assert.Nil(s.T(), err, "PutObject Failed") | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						time.Sleep(3 * time.Second) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						// Copy file
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						soruceURL := fmt.Sprintf("%s/%s", iu.Host, source) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						dest := "test/objectMove1" + time.Now().Format(time.RFC3339) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						_, _, err = s.Client.Object.MultiCopy(context.Background(), dest, soruceURL, nil) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						assert.Nil(s.T(), err, "MultiCopy Failed") | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						// Check content
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						resp, err := s.Client.Object.Get(context.Background(), dest, nil) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						assert.Nil(s.T(), err, "GetObject Failed") | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						bs, _ := ioutil.ReadAll(resp.Body) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						resp.Body.Close() | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						result := string(bs) | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
						assert.Equal(s.T(), expected, result, "MultiCopy Failed, wrong content") | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					} | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					// End of api test
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					
 | 
				
			
			
		
	
		
			
				
					 | 
					 | 
				
				 | 
				
					// All methods that begin with "Test" are run as tests within a
 | 
				
			
			
		
	
	
		
			
				
					| 
						
							
								
							
						
						
						
					 | 
				
				 | 
				
					
  |