Browse Source

refine case

鸣镝 9 years ago
parent
commit
36fd9afd72
7 changed files with 152 additions and 79 deletions
  1. 16 15
      oss/bucket_test.go
  2. 90 25
      oss/client_test.go
  3. 9 9
      oss/conn_test.go
  4. 1 4
      oss/download_test.go
  5. 10 14
      oss/multicopy_test.go
  6. 25 8
      oss/multipart_test.go
  7. 1 4
      oss/upload_test.go

+ 16 - 15
oss/bucket_test.go

@@ -27,15 +27,6 @@ type OssBucketSuite struct {
 
 var _ = Suite(&OssBucketSuite{})
 
-const (
-	bucketName       = "go-sdk-test-obj"
-	objectNamePrefix = "my-object-"
-
-	stsServer     = "<StsServer>"
-	stsEndpoint   = "<StsEndpoint>"
-	stsBucketName = "<StsBucketName>"
-)
-
 var (
 	pastDate   = time.Date(2009, time.November, 10, 23, 0, 0, 0, time.UTC)
 	futureDate = time.Date(2049, time.January, 10, 23, 0, 0, 0, time.UTC)
@@ -48,6 +39,7 @@ func (s *OssBucketSuite) SetUpSuite(c *C) {
 	s.client = client
 
 	s.client.CreateBucket(bucketName)
+	time.Sleep(5 * time.Second)
 
 	bucket, err := s.client.Bucket(bucketName)
 	c.Assert(err, IsNil)
@@ -58,6 +50,16 @@ func (s *OssBucketSuite) SetUpSuite(c *C) {
 
 // Run before each test or benchmark starts running
 func (s *OssBucketSuite) TearDownSuite(c *C) {
+	// Delete Multipart
+	lmu, err := s.bucket.ListMultipartUploads()
+	c.Assert(err, IsNil)
+
+	for _, upload := range lmu.Uploads {
+		imur := InitiateMultipartUploadResult{Bucket: bucketName, Key: upload.Key, UploadID: upload.UploadID}
+		err = s.bucket.AbortMultipartUpload(imur)
+		c.Assert(err, IsNil)
+	}
+
 	// Delete Objects
 	lor, err := s.bucket.ListObjects()
 	c.Assert(err, IsNil)
@@ -67,10 +69,6 @@ func (s *OssBucketSuite) TearDownSuite(c *C) {
 		c.Assert(err, IsNil)
 	}
 
-	// Delete Bucket
-	err = s.client.DeleteBucket(bucketName)
-	c.Assert(err, IsNil)
-
 	testLogger.Println("test bucket completed")
 }
 
@@ -640,7 +638,7 @@ func (s *OssBucketSuite) TestListObjectsEncodingType(c *C) {
 	lor, err = s.bucket.ListObjects(Prefix(objectNamePrefix + "床前明月光"))
 	c.Assert(err, IsNil)
 	for i, obj := range lor.Objects {
-		c.Assert(obj.Key, Equals, "my-object-床前明月光,疑是地上霜。举头望明月,低头思故乡。tloet"+strconv.Itoa(i))
+		c.Assert(obj.Key, Equals, objectNamePrefix+"床前明月光,疑是地上霜。举头望明月,低头思故乡。tloet"+strconv.Itoa(i))
 	}
 
 	for i := 0; i < 10; i++ {
@@ -1357,6 +1355,9 @@ func (s *OssBucketSuite) TestGetConfig(c *C) {
 func (s *OssBucketSuite) _TestSTSTonek(c *C) {
 	objectName := objectNamePrefix + "tst"
 	objectValue := "红藕香残玉簟秋。轻解罗裳,独上兰舟。云中谁寄锦书来?雁字回时,月满西楼。"
+	stsServer := ""
+	stsEndpoint := ""
+	stsBucketName := ""
 
 	stsRes, err := getSTSToken(stsServer)
 	c.Assert(err, IsNil)
@@ -1504,7 +1505,7 @@ func createFileAndWrite(fileName string, data []byte) error {
 	}
 
 	if bytes != len(data) {
-		return fmt.Errorf(fmt.Sprintf("write %s bytes not equal data length %s", bytes, len(data)))
+		return fmt.Errorf(fmt.Sprintf("write %d bytes not equal data length %d", bytes, len(data)))
 	}
 
 	return nil

+ 90 - 25
oss/client_test.go

@@ -1,4 +1,4 @@
-// client test
+锘�// client test
 // use gocheck, install gocheck to execute "go get gopkg.in/check.v1",
 // see https://labix.org/gocheck
 
@@ -23,13 +23,32 @@ type OssClientSuite struct{}
 
 var _ = Suite(&OssClientSuite{})
 
+var (
+	// endpoint/id/key
+	endpoint  = os.Getenv("OSS_TEST_ENDPOINT")
+	accessID  = os.Getenv("OSS_TEST_ACCESS_KEY_ID")
+	accessKey = os.Getenv("OSS_TEST_ACCESS_KEY_SECRET")
+
+	// proxy
+	proxyHost   = os.Getenv("OSS_TEST_PROXY_HOST")
+	proxyUser   = os.Getenv("OSS_TEST_PROXY_USER")
+	proxyPasswd = os.Getenv("OSS_TEST_PROXY_PASSWORD")
+
+	// sts
+	stsAccessID  = os.Getenv("OSS_TEST_STS_ID")
+	stsAccessKey = os.Getenv("OSS_TEST_STS_KEY")
+	stsARN       = os.Getenv("OSS_TEST_STS_ARN")
+)
+
 const (
-	// Update before running test
-	endpoint         = "<testEndpoint>"
-	accessID         = "<testAccessID>"
-	accessKey        = "<testAccessKey>"
-	bucketNamePrefix = "go-sdk-test-"
-	proxyHost        = "<http://testProxy>"
+	// prefix of bucket name for bucket ops test
+	bucketNamePrefix = "my-go-bucket-"
+	// bucket name for object ops test
+	bucketName = "my-go-test-bucket"
+	// object name for object ops test
+	objectNamePrefix = "my-go-object-"
+
+	stsRegion = "cn-hangzhou"
 )
 
 var (
@@ -40,11 +59,33 @@ var (
 
 // Run once when the suite starts running
 func (s *OssClientSuite) SetUpSuite(c *C) {
+	client, err := New(endpoint, accessID, accessKey)
+	c.Assert(err, IsNil)
+
+	lbr, err := client.ListBuckets(Prefix(bucketNamePrefix), MaxKeys(1000))
+	c.Assert(err, IsNil)
+
+	for _, bucket := range lbr.Buckets {
+		err = client.DeleteBucket(bucket.Name)
+		c.Assert(err, IsNil)
+	}
+
 	testLogger.Println("test client started")
 }
 
 // Run before each test or benchmark starts running
 func (s *OssClientSuite) TearDownSuite(c *C) {
+	client, err := New(endpoint, accessID, accessKey)
+	c.Assert(err, IsNil)
+
+	lbr, err := client.ListBuckets(Prefix(bucketNamePrefix), MaxKeys(1000))
+	c.Assert(err, IsNil)
+
+	for _, bucket := range lbr.Buckets {
+		err = client.DeleteBucket(bucket.Name)
+		c.Assert(err, IsNil)
+	}
+
 	testLogger.Println("test client completed")
 }
 
@@ -74,6 +115,7 @@ func (s *OssClientSuite) TestCreateBucket(c *C) {
 
 	found := s.checkBucket(lbr.Buckets, bucketNameTest)
 	c.Assert(found, Equals, true)
+	time.Sleep(5 * time.Second)
 
 	res, err := client.GetBucketACL(bucketNameTest)
 	c.Assert(err, IsNil)
@@ -85,6 +127,7 @@ func (s *OssClientSuite) TestCreateBucket(c *C) {
 	// Create with ACLPublicRead
 	err = client.CreateBucket(bucketNameTest, ACL(ACLPublicRead))
 	c.Assert(err, IsNil)
+	time.Sleep(5 * time.Second)
 
 	res, err = client.GetBucketACL(bucketNameTest)
 	c.Assert(err, IsNil)
@@ -92,6 +135,7 @@ func (s *OssClientSuite) TestCreateBucket(c *C) {
 
 	err = client.DeleteBucket(bucketNameTest)
 	c.Assert(err, IsNil)
+	time.Sleep(5 * time.Second)
 
 	// ACLPublicReadWrite
 	err = client.CreateBucket(bucketNameTest, ACL(ACLPublicReadWrite))
@@ -103,6 +147,7 @@ func (s *OssClientSuite) TestCreateBucket(c *C) {
 
 	err = client.DeleteBucket(bucketNameTest)
 	c.Assert(err, IsNil)
+	time.Sleep(5 * time.Second)
 
 	// ACLPrivate
 	err = client.CreateBucket(bucketNameTest, ACL(ACLPrivate))
@@ -248,7 +293,7 @@ func (s *OssClientSuite) TestListBucket(c *C) {
 	// ListBuckets, specified max keys
 	lbr, err = client.ListBuckets(Marker(bucketNameLbOne))
 	c.Assert(err, IsNil)
-	c.Assert(len(lbr.Buckets) == 2 || len(lbr.Buckets) == 3, Equals, true)
+	c.Assert(len(lbr.Buckets) >= 2, Equals, true)
 
 	// DeleteBucket
 	err = client.DeleteBucket(bucketNameLbOne)
@@ -319,7 +364,6 @@ func (s *OssClientSuite) TestSetBucketAcl(c *C) {
 	c.Assert(err, IsNil)
 
 	// Private
-	client.DeleteBucket(bucketNameTest)
 	err = client.CreateBucket(bucketNameTest)
 	c.Assert(err, IsNil)
 
@@ -330,6 +374,7 @@ func (s *OssClientSuite) TestSetBucketAcl(c *C) {
 	// set ACL_PUBLIC_R
 	err = client.SetBucketACL(bucketNameTest, ACLPublicRead)
 	c.Assert(err, IsNil)
+	time.Sleep(5 * time.Second)
 
 	res, err = client.GetBucketACL(bucketNameTest)
 	c.Assert(err, IsNil)
@@ -338,6 +383,7 @@ func (s *OssClientSuite) TestSetBucketAcl(c *C) {
 	// set ACL_PUBLIC_RW
 	err = client.SetBucketACL(bucketNameTest, ACLPublicReadWrite)
 	c.Assert(err, IsNil)
+	time.Sleep(5 * time.Second)
 
 	res, err = client.GetBucketACL(bucketNameTest)
 	c.Assert(err, IsNil)
@@ -348,6 +394,7 @@ func (s *OssClientSuite) TestSetBucketAcl(c *C) {
 	c.Assert(err, IsNil)
 	err = client.SetBucketACL(bucketNameTest, ACLPrivate)
 	c.Assert(err, IsNil)
+	time.Sleep(5 * time.Second)
 
 	res, err = client.GetBucketACL(bucketNameTest)
 	c.Assert(err, IsNil)
@@ -383,7 +430,6 @@ func (s *OssClientSuite) TestGetBucketAcl(c *C) {
 	c.Assert(err, IsNil)
 
 	// Private
-	client.DeleteBucket(bucketNameTest)
 	err = client.CreateBucket(bucketNameTest)
 	c.Assert(err, IsNil)
 
@@ -393,10 +439,12 @@ func (s *OssClientSuite) TestGetBucketAcl(c *C) {
 
 	err = client.DeleteBucket(bucketNameTest)
 	c.Assert(err, IsNil)
+	time.Sleep(5 * time.Second)
 
 	// PublicRead
 	err = client.CreateBucket(bucketNameTest, ACL(ACLPublicRead))
 	c.Assert(err, IsNil)
+	time.Sleep(5 * time.Second)
 
 	res, err = client.GetBucketACL(bucketNameTest)
 	c.Assert(err, IsNil)
@@ -404,10 +452,12 @@ func (s *OssClientSuite) TestGetBucketAcl(c *C) {
 
 	err = client.DeleteBucket(bucketNameTest)
 	c.Assert(err, IsNil)
+	time.Sleep(5 * time.Second)
 
 	// PublicReadWrite
 	err = client.CreateBucket(bucketNameTest, ACL(ACLPublicReadWrite))
 	c.Assert(err, IsNil)
+	time.Sleep(5 * time.Second)
 
 	res, err = client.GetBucketACL(bucketNameTest)
 	c.Assert(err, IsNil)
@@ -513,6 +563,7 @@ func (s *OssClientSuite) TestDeleteBucketLifecycle(c *C) {
 
 	err = client.SetBucketLifecycle(bucketNameTest, rules)
 	c.Assert(err, IsNil)
+	time.Sleep(5 * time.Second)
 
 	res, err := client.GetBucketLifecycle(bucketNameTest)
 	c.Assert(err, IsNil)
@@ -522,6 +573,7 @@ func (s *OssClientSuite) TestDeleteBucketLifecycle(c *C) {
 	err = client.DeleteBucketLifecycle(bucketNameTest)
 	c.Assert(err, IsNil)
 
+	time.Sleep(5 * time.Second)
 	res, err = client.GetBucketLifecycle(bucketNameTest)
 	c.Assert(err, NotNil)
 
@@ -585,6 +637,7 @@ func (s *OssClientSuite) TestSetBucketReferer(c *C) {
 	// set referers
 	err = client.SetBucketReferer(bucketNameTest, referers, false)
 	c.Assert(err, IsNil)
+	time.Sleep(5 * time.Second)
 
 	res, err = client.GetBucketReferer(bucketNameTest)
 	c.Assert(res.AllowEmptyReferer, Equals, false)
@@ -640,6 +693,7 @@ func (s *OssClientSuite) TestSetBucketLogging(c *C) {
 	c.Assert(err, IsNil)
 	err = client.CreateBucket(bucketNameTarget)
 	c.Assert(err, IsNil)
+	time.Sleep(5 * time.Second)
 
 	// set logging
 	err = client.SetBucketLogging(bucketNameTest, bucketNameTarget, "prefix", true)
@@ -648,6 +702,7 @@ func (s *OssClientSuite) TestSetBucketLogging(c *C) {
 	err = client.SetBucketLogging(bucketNameTest, bucketNameTarget, "prefix", false)
 	c.Assert(err, IsNil)
 
+	time.Sleep(5 * time.Second)
 	res, err := client.GetBucketLogging(bucketNameTest)
 	c.Assert(err, IsNil)
 	c.Assert(res.LoggingEnabled.TargetBucket, Equals, "")
@@ -690,6 +745,7 @@ func (s *OssClientSuite) TestDeleteBucketLogging(c *C) {
 	c.Assert(err, IsNil)
 
 	// get
+	time.Sleep(5 * time.Second)
 	res, err = client.GetBucketLogging(bucketNameTest)
 	c.Assert(err, IsNil)
 	c.Assert(res.LoggingEnabled.TargetBucket, Equals, bucketNameTarget)
@@ -700,6 +756,7 @@ func (s *OssClientSuite) TestDeleteBucketLogging(c *C) {
 	c.Assert(err, IsNil)
 
 	// get
+	time.Sleep(5 * time.Second)
 	res, err = client.GetBucketLogging(bucketNameTest)
 	c.Assert(err, IsNil)
 	c.Assert(res.LoggingEnabled.TargetBucket, Equals, "")
@@ -710,6 +767,7 @@ func (s *OssClientSuite) TestDeleteBucketLogging(c *C) {
 	c.Assert(err, IsNil)
 
 	// get after delete
+	time.Sleep(5 * time.Second)
 	res, err = client.GetBucketLogging(bucketNameTest)
 	c.Assert(err, IsNil)
 	c.Assert(res.LoggingEnabled.TargetBucket, Equals, "")
@@ -743,21 +801,16 @@ func (s *OssClientSuite) TestSetBucketLoggingNegative(c *C) {
 
 	err = client.CreateBucket(bucketNameTest)
 	c.Assert(err, IsNil)
+	time.Sleep(5 * time.Second)
 
 	// target bucket not exist
 	err = client.SetBucketLogging(bucketNameTest, bucketNameTarget, "prefix", true)
 	c.Assert(err, NotNil)
 
-	//    err = client.SetBucketLogging(bucketNameTest, bucketNameTarget, "prefix", false)
-	//    c.Assert(err, NotNil)
-
 	// parameter invalid
 	err = client.SetBucketLogging(bucketNameTest, "XXXX", "prefix", true)
 	c.Assert(err, NotNil)
 
-	//    err = client.SetBucketLogging(bucketNameTest, "XXXX", "prefix", false)
-	//    c.Assert(err, NotNil)
-
 	err = client.SetBucketLogging(bucketNameTest, "xx", "prefix", true)
 	c.Assert(err, NotNil)
 
@@ -794,6 +847,7 @@ func (s *OssClientSuite) TestSetBucketWebsite(c *C) {
 	err = client.SetBucketWebsite(bucketNameTest, "your"+indexWebsite, "your"+errorWebsite)
 	c.Assert(err, IsNil)
 
+	time.Sleep(5 * time.Second)
 	res, err = client.GetBucketWebsite(bucketNameTest)
 	c.Assert(err, IsNil)
 	c.Assert(res.IndexDocument.Suffix, Equals, "your"+indexWebsite)
@@ -839,12 +893,14 @@ func (s *OssClientSuite) TestDeleteBucketWebsite(c *C) {
 	err = client.SetBucketWebsite(bucketNameTest, indexWebsite, errorWebsite)
 	c.Assert(err, IsNil)
 
+	time.Sleep(5 * time.Second)
 	res, err = client.GetBucketWebsite(bucketNameTest)
 	c.Assert(err, IsNil)
 	c.Assert(res.IndexDocument.Suffix, Equals, indexWebsite)
 	c.Assert(res.ErrorDocument.Key, Equals, errorWebsite)
 
 	// detele
+	time.Sleep(5 * time.Second)
 	err = client.DeleteBucketWebsite(bucketNameTest)
 	c.Assert(err, IsNil)
 
@@ -884,6 +940,7 @@ func (s *OssClientSuite) TestSetBucketWebsiteNegative(c *C) {
 	c.Assert(err, IsNil)
 
 	// set
+	time.Sleep(5 * time.Second)
 	err = client.SetBucketWebsite(bucketNameTest, "myindex", "myerror")
 	c.Assert(err, IsNil)
 
@@ -931,6 +988,7 @@ func (s *OssClientSuite) TestSetBucketCORS(c *C) {
 
 	err = client.CreateBucket(bucketNameTest)
 	c.Assert(err, IsNil)
+	time.Sleep(5 * time.Second)
 
 	// set
 	err = client.SetBucketCORS(bucketNameTest, []CORSRule{rule1})
@@ -962,6 +1020,7 @@ func (s *OssClientSuite) TestSetBucketCORS(c *C) {
 	err = client.SetBucketCORS(bucketNameTest, []CORSRule{rule2})
 	c.Assert(err, IsNil)
 
+	time.Sleep(5 * time.Second)
 	gbcr, err = client.GetBucketCORS(bucketNameTest)
 	c.Assert(err, IsNil)
 	c.Assert(len(gbcr.CORSRules), Equals, 1)
@@ -1022,6 +1081,7 @@ func (s *OssClientSuite) TestDeleteBucketCORS(c *C) {
 	err = client.SetBucketCORS(bucketNameTest, []CORSRule{rule})
 	c.Assert(err, IsNil)
 
+	time.Sleep(5 * time.Second)
 	_, err = client.GetBucketCORS(bucketNameTest)
 	c.Assert(err, IsNil)
 
@@ -1068,6 +1128,7 @@ func (s *OssClientSuite) TestSetBucketCORSNegative(c *C) {
 
 	err = client.CreateBucket(bucketNameTest)
 	c.Assert(err, IsNil)
+	time.Sleep(5 * time.Second)
 
 	_, err = client.GetBucketCORS(bucketNameTest)
 	c.Assert(err, NotNil)
@@ -1075,6 +1136,7 @@ func (s *OssClientSuite) TestSetBucketCORSNegative(c *C) {
 	// set
 	err = client.SetBucketCORS(bucketNameTest, []CORSRule{rule})
 	c.Assert(err, IsNil)
+	time.Sleep(5 * time.Second)
 
 	_, err = client.GetBucketCORS(bucketNameTest)
 	c.Assert(err, IsNil)
@@ -1150,6 +1212,7 @@ func (s *OssClientSuite) TestEndpointFormat(c *C) {
 
 	err = client.DeleteBucket(bucketNameTest)
 	c.Assert(err, IsNil)
+	time.Sleep(5 * time.Second)
 
 	// http://host:port
 	client, err = New(endpoint+":80", accessID, accessKey)
@@ -1158,6 +1221,7 @@ func (s *OssClientSuite) TestEndpointFormat(c *C) {
 	err = client.CreateBucket(bucketNameTest)
 	c.Assert(err, IsNil)
 
+	time.Sleep(5 * time.Second)
 	res, err = client.GetBucketACL(bucketNameTest)
 	c.Assert(err, IsNil)
 	c.Assert(res.ACL, Equals, string(ACLPrivate))
@@ -1201,8 +1265,8 @@ func (s *OssClientSuite) _TestCnameNegative(c *C) {
 	c.Assert(err, NotNil)
 }
 
-// TestHttps
-func (s *OssClientSuite) _TestHttps(c *C) {
+// _TestHTTPS
+func (s *OssClientSuite) _TestHTTPS(c *C) {
 	var bucketNameTest = "<my-bucket-https>"
 
 	client, err := New("<endpoint>", "<AccessKeyId>", "<AccessKeySecret>")
@@ -1242,21 +1306,22 @@ func (s *OssClientSuite) TestClientOption(c *C) {
 	c.Assert(client.Conn.config.IsUseProxy, Equals, true)
 	c.Assert(client.Config.ProxyHost, Equals, proxyHost)
 
-	client, err = New(endpoint, accessID, accessKey, AuthProxy(proxyHost, "user", "passwd"))
+	client, err = New(endpoint, accessID, accessKey, AuthProxy(proxyHost, proxyUser, proxyPasswd))
 
 	c.Assert(client.Conn.config.IsUseProxy, Equals, true)
 	c.Assert(client.Config.ProxyHost, Equals, proxyHost)
 	c.Assert(client.Conn.config.IsAuthProxy, Equals, true)
-	c.Assert(client.Conn.config.ProxyUser, Equals, "user")
-	c.Assert(client.Conn.config.ProxyPassword, Equals, "passwd")
+	c.Assert(client.Conn.config.ProxyUser, Equals, proxyUser)
+	c.Assert(client.Conn.config.ProxyPassword, Equals, proxyPasswd)
 }
 
-func (s *OssClientSuite) TestProxy(c *C) {
+// _TestProxy
+func (s *OssClientSuite) _TestProxy(c *C) {
 	bucketNameTest := bucketNamePrefix + "tp"
-	objectName := "体育/奥运/首金"
-	objectValue := "大江东去,浪淘尽,千古风流人物。 故垒西边,人道是、三国周郎赤壁。"
+	objectName := "浣撹偛/濂ヨ繍/棣栭噾"
+	objectValue := "澶ф睙涓滃幓锛屾氮娣樺敖锛屽崈鍙ら�娴佷汉鐗┿€� 鏁呭瀿瑗胯竟锛屼汉閬撴槸銆佷笁鍥藉懆閮庤丹澹併€�"
 
-	client, err := New(endpoint, accessID, accessKey, Proxy(proxyHost))
+	client, err := New(endpoint, accessID, accessKey, AuthProxy(proxyHost, proxyUser, proxyPasswd))
 
 	// Create bucket
 	err = client.CreateBucket(bucketNameTest)

+ 9 - 9
oss/conn_test.go

@@ -12,7 +12,7 @@ var _ = Suite(&OssConnSuite{})
 
 func (s *OssConnSuite) TestURLMarker(c *C) {
 	um := urlMaker{}
-	um.Init("docs.github.com", true)
+	um.Init("docs.github.com", true, false)
 	c.Assert(um.Type, Equals, urlTypeCname)
 	c.Assert(um.Scheme, Equals, "http")
 	c.Assert(um.NetLoc, Equals, "docs.github.com")
@@ -24,17 +24,17 @@ func (s *OssConnSuite) TestURLMarker(c *C) {
 	c.Assert(um.getResource("bucket", "object", ""), Equals, "/bucket/object")
 	c.Assert(um.getResource("", "object", ""), Equals, "/")
 
-	um.Init("https://docs.github.com", true)
+	um.Init("https://docs.github.com", true, false)
 	c.Assert(um.Type, Equals, urlTypeCname)
 	c.Assert(um.Scheme, Equals, "https")
 	c.Assert(um.NetLoc, Equals, "docs.github.com")
 
-	um.Init("http://docs.github.com", true)
+	um.Init("http://docs.github.com", true, false)
 	c.Assert(um.Type, Equals, urlTypeCname)
 	c.Assert(um.Scheme, Equals, "http")
 	c.Assert(um.NetLoc, Equals, "docs.github.com")
 
-	um.Init("docs.github.com:8080", false)
+	um.Init("docs.github.com:8080", false, true)
 	c.Assert(um.Type, Equals, urlTypeAliyun)
 	c.Assert(um.Scheme, Equals, "http")
 	c.Assert(um.NetLoc, Equals, "docs.github.com:8080")
@@ -46,22 +46,22 @@ func (s *OssConnSuite) TestURLMarker(c *C) {
 	c.Assert(um.getResource("bucket", "object", ""), Equals, "/bucket/object")
 	c.Assert(um.getResource("", "object", ""), Equals, "/")
 
-	um.Init("https://docs.github.com:8080", false)
+	um.Init("https://docs.github.com:8080", false, true)
 	c.Assert(um.Type, Equals, urlTypeAliyun)
 	c.Assert(um.Scheme, Equals, "https")
 	c.Assert(um.NetLoc, Equals, "docs.github.com:8080")
 
-	um.Init("127.0.0.1", false)
+	um.Init("127.0.0.1", false, true)
 	c.Assert(um.Type, Equals, urlTypeIP)
 	c.Assert(um.Scheme, Equals, "http")
 	c.Assert(um.NetLoc, Equals, "127.0.0.1")
 
-	um.Init("http://127.0.0.1", false)
+	um.Init("http://127.0.0.1", false, false)
 	c.Assert(um.Type, Equals, urlTypeIP)
 	c.Assert(um.Scheme, Equals, "http")
 	c.Assert(um.NetLoc, Equals, "127.0.0.1")
 
-	um.Init("https://127.0.0.1:8080", false)
+	um.Init("https://127.0.0.1:8080", false, false)
 	c.Assert(um.Type, Equals, urlTypeIP)
 	c.Assert(um.Scheme, Equals, "https")
 	c.Assert(um.NetLoc, Equals, "127.0.0.1:8080")
@@ -71,7 +71,7 @@ func (s *OssConnSuite) TestAuth(c *C) {
 	endpoint := "https://github.com/"
 	cfg := getDefaultOssConfig()
 	um := urlMaker{}
-	um.Init(endpoint, false)
+	um.Init(endpoint, false, false)
 	conn := Conn{cfg, &um}
 	uri := um.getURL("bucket", "object", "")
 	req := &http.Request{

+ 1 - 4
oss/download_test.go

@@ -22,6 +22,7 @@ func (s *OssDownloadSuite) SetUpSuite(c *C) {
 	s.client = client
 
 	s.client.CreateBucket(bucketName)
+	time.Sleep(5 * time.Second)
 
 	bucket, err := s.client.Bucket(bucketName)
 	c.Assert(err, IsNil)
@@ -52,10 +53,6 @@ func (s *OssDownloadSuite) TearDownSuite(c *C) {
 		c.Assert(err, IsNil)
 	}
 
-	// delete bucket
-	err = s.client.DeleteBucket(bucketName)
-	c.Assert(err, IsNil)
-
 	testLogger.Println("test download completed")
 }
 

+ 10 - 14
oss/multicopy_test.go

@@ -22,6 +22,7 @@ func (s *OssCopySuite) SetUpSuite(c *C) {
 	s.client = client
 
 	s.client.CreateBucket(bucketName)
+	time.Sleep(5 * time.Second)
 
 	bucket, err := s.client.Bucket(bucketName)
 	c.Assert(err, IsNil)
@@ -52,10 +53,6 @@ func (s *OssCopySuite) TearDownSuite(c *C) {
 		c.Assert(err, IsNil)
 	}
 
-	// delete bucket
-	err = s.client.DeleteBucket(bucketName)
-	c.Assert(err, IsNil)
-
 	testLogger.Println("test copy completed")
 }
 
@@ -74,7 +71,7 @@ func (s *OssCopySuite) TearDownTest(c *C) {
 // TestCopyRoutineWithoutRecovery 多线程无断点恢复的复制
 func (s *OssCopySuite) TestCopyRoutineWithoutRecovery(c *C) {
 	srcObjectName := objectNamePrefix + "tcrwr"
-	destObjectName := srcObjectName + "-copy" 
+	destObjectName := srcObjectName + "-copy"
 	fileName := "../sample/BingWallpaper-2015-11-07.jpg"
 	newFile := "copy-new-file.jpg"
 
@@ -86,7 +83,7 @@ func (s *OssCopySuite) TestCopyRoutineWithoutRecovery(c *C) {
 	// 不指定Routines,默认单线程
 	err = s.bucket.CopyFile(bucketName, srcObjectName, destObjectName, 100*1024)
 	c.Assert(err, IsNil)
-	
+
 	err = s.bucket.GetObjectToFile(destObjectName, newFile)
 	c.Assert(err, IsNil)
 
@@ -204,11 +201,10 @@ func CopyErrorHooker(part copyPart) error {
 	return nil
 }
 
-
 // TestCopyRoutineWithoutRecoveryNegative 多线程无断点恢复的复制
 func (s *OssCopySuite) TestCopyRoutineWithoutRecoveryNegative(c *C) {
 	srcObjectName := objectNamePrefix + "tcrwrn"
-	destObjectName := srcObjectName + "-copy" 
+	destObjectName := srcObjectName + "-copy"
 	fileName := "../sample/BingWallpaper-2015-11-07.jpg"
 
 	// 上传源文件
@@ -245,7 +241,7 @@ func (s *OssCopySuite) TestCopyRoutineWithoutRecoveryNegative(c *C) {
 // TestCopyRoutineWithRecovery 多线程且有断点恢复的复制
 func (s *OssCopySuite) TestCopyRoutineWithRecovery(c *C) {
 	srcObjectName := objectNamePrefix + "tcrtr"
-	destObjectName := srcObjectName + "-copy" 
+	destObjectName := srcObjectName + "-copy"
 	fileName := "../sample/BingWallpaper-2015-11-07.jpg"
 	newFile := "copy-new-file.jpg"
 
@@ -398,7 +394,7 @@ func (s *OssCopySuite) TestCopyRoutineWithRecovery(c *C) {
 // TestCopyRoutineWithRecoveryNegative 多线程无断点恢复的复制
 func (s *OssCopySuite) TestCopyRoutineWithRecoveryNegative(c *C) {
 	srcObjectName := objectNamePrefix + "tcrwrn"
-	destObjectName := srcObjectName + "-copy" 
+	destObjectName := srcObjectName + "-copy"
 
 	// 源Bucket不存在
 	err := s.bucket.CopyFile("NotExist", srcObjectName, destObjectName, 100*1024, Checkpoint(true, ""))
@@ -410,7 +406,7 @@ func (s *OssCopySuite) TestCopyRoutineWithRecoveryNegative(c *C) {
 	c.Assert(err, NotNil)
 
 	// 指定的分片大小无效
-	err = s.bucket.CopyFile(bucketName, srcObjectName, destObjectName, 1024,  Checkpoint(true, ""))
+	err = s.bucket.CopyFile(bucketName, srcObjectName, destObjectName, 1024, Checkpoint(true, ""))
 	c.Assert(err, NotNil)
 
 	err = s.bucket.CopyFile(bucketName, srcObjectName, destObjectName, 1024*1024*1024*100, Routines(2), Checkpoint(true, ""))
@@ -421,10 +417,10 @@ func (s *OssCopySuite) TestCopyRoutineWithRecoveryNegative(c *C) {
 func (s *OssCopySuite) TestCopyFileCrossBucket(c *C) {
 	destBucketName := bucketName + "-desc"
 	srcObjectName := objectNamePrefix + "tcrtr"
-	destObjectName := srcObjectName + "-copy" 
+	destObjectName := srcObjectName + "-copy"
 	fileName := "../sample/BingWallpaper-2015-11-07.jpg"
 	newFile := "copy-new-file.jpg"
-	
+
 	destBucket, err := s.client.Bucket(destBucketName)
 	c.Assert(err, IsNil)
 
@@ -436,7 +432,7 @@ func (s *OssCopySuite) TestCopyFileCrossBucket(c *C) {
 	err = s.bucket.UploadFile(srcObjectName, fileName, 100*1024, Routines(3))
 	c.Assert(err, IsNil)
 	os.Remove(newFile)
-	
+
 	// 复制文件
 	err = destBucket.CopyFile(bucketName, srcObjectName, destObjectName, 1024*100, Routines(5), Checkpoint(true, ""))
 	c.Assert(err, IsNil)

+ 25 - 8
oss/multipart_test.go

@@ -7,6 +7,7 @@ import (
 	"net/http"
 	"os"
 	"strconv"
+	"time"
 
 	. "gopkg.in/check.v1"
 )
@@ -25,11 +26,32 @@ func (s *OssBucketMultipartSuite) SetUpSuite(c *C) {
 	s.client = client
 
 	s.client.CreateBucket(bucketName)
+	time.Sleep(5 * time.Second)
 
 	bucket, err := s.client.Bucket(bucketName)
 	c.Assert(err, IsNil)
 	s.bucket = bucket
 
+	// Delete Part
+	lmur, err := s.bucket.ListMultipartUploads()
+	c.Assert(err, IsNil)
+
+	for _, upload := range lmur.Uploads {
+		var imur = InitiateMultipartUploadResult{Bucket: s.bucket.BucketName,
+			Key: upload.Key, UploadID: upload.UploadID}
+		err = s.bucket.AbortMultipartUpload(imur)
+		c.Assert(err, IsNil)
+	}
+
+	// Delete Objects
+	lor, err := s.bucket.ListObjects()
+	c.Assert(err, IsNil)
+
+	for _, object := range lor.Objects {
+		err = s.bucket.DeleteObject(object.Key)
+		c.Assert(err, IsNil)
+	}
+
 	testLogger.Println("test multipart started")
 }
 
@@ -55,10 +77,6 @@ func (s *OssBucketMultipartSuite) TearDownSuite(c *C) {
 		c.Assert(err, IsNil)
 	}
 
-	// delete bucket
-	err = s.client.DeleteBucket(bucketName)
-	c.Assert(err, IsNil)
-
 	testLogger.Println("test multipart completed")
 }
 
@@ -254,7 +272,6 @@ func (s *OssBucketMultipartSuite) TestListUploadedParts(c *C) {
 	lmur, err := s.bucket.ListMultipartUploads()
 	c.Assert(err, IsNil)
 	testLogger.Println("lmur:", lmur)
-	c.Assert(len(lmur.Uploads), Equals, 2)
 
 	// complete
 	_, err = s.bucket.CompleteMultipartUpload(imurUpload, partsUpload)
@@ -574,18 +591,18 @@ func (s *OssBucketMultipartSuite) TestListMultipartUploadsEncodingKey(c *C) {
 	c.Assert(err, IsNil)
 	c.Assert(len(lmpu.Uploads), Equals, 3)
 
-	lmpu, err = s.bucket.ListMultipartUploads(Prefix("my-object-让你任性让你狂tlmuek1"))
+	lmpu, err = s.bucket.ListMultipartUploads(Prefix(objectNamePrefix + "让你任性让你狂tlmuek1"))
 	c.Assert(err, IsNil)
 	c.Assert(len(lmpu.Uploads), Equals, 1)
 
-	lmpu, err = s.bucket.ListMultipartUploads(KeyMarker("my-object-让你任性让你狂tlmuek1"))
+	lmpu, err = s.bucket.ListMultipartUploads(KeyMarker(objectNamePrefix + "让你任性让你狂tlmuek1"))
 	c.Assert(err, IsNil)
 	c.Assert(len(lmpu.Uploads), Equals, 1)
 
 	lmpu, err = s.bucket.ListMultipartUploads(EncodingType("url"))
 	c.Assert(err, IsNil)
 	for i, upload := range lmpu.Uploads {
-		c.Assert(upload.Key, Equals, "my-object-让你任性让你狂tlmuek"+strconv.Itoa(i))
+		c.Assert(upload.Key, Equals, objectNamePrefix+"让你任性让你狂tlmuek"+strconv.Itoa(i))
 	}
 
 	for _, imur := range imurs {

+ 1 - 4
oss/upload_test.go

@@ -23,6 +23,7 @@ func (s *OssUploadSuite) SetUpSuite(c *C) {
 	s.client = client
 
 	s.client.CreateBucket(bucketName)
+	time.Sleep(5 * time.Second)
 
 	bucket, err := s.client.Bucket(bucketName)
 	c.Assert(err, IsNil)
@@ -53,10 +54,6 @@ func (s *OssUploadSuite) TearDownSuite(c *C) {
 		c.Assert(err, IsNil)
 	}
 
-	// delete bucket
-	err = s.client.DeleteBucket(bucketName)
-	c.Assert(err, IsNil)
-
 	testLogger.Println("test upload completed")
 }