add get object optional and test
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user