|
@@ -1,4 +1,4 @@
|
|
|
-// bucket test
|
|
|
|
|
|
|
+// Bucket test
|
|
|
|
|
|
|
|
package oss
|
|
package oss
|
|
|
|
|
|
|
@@ -34,7 +34,7 @@ var (
|
|
|
futureDate = time.Date(2049, time.January, 10, 23, 0, 0, 0, time.UTC)
|
|
futureDate = time.Date(2049, time.January, 10, 23, 0, 0, 0, time.UTC)
|
|
|
)
|
|
)
|
|
|
|
|
|
|
|
-// Run once when the suite starts running
|
|
|
|
|
|
|
+// SetUpSuite runs once when the suite starts running.
|
|
|
func (s *OssBucketSuite) SetUpSuite(c *C) {
|
|
func (s *OssBucketSuite) SetUpSuite(c *C) {
|
|
|
client, err := New(endpoint, accessID, accessKey)
|
|
client, err := New(endpoint, accessID, accessKey)
|
|
|
c.Assert(err, IsNil)
|
|
c.Assert(err, IsNil)
|
|
@@ -58,10 +58,10 @@ func (s *OssBucketSuite) SetUpSuite(c *C) {
|
|
|
testLogger.Println("test bucket started")
|
|
testLogger.Println("test bucket started")
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-// Run before each test or benchmark starts running
|
|
|
|
|
|
|
+// TearDownSuite runs before each test or benchmark starts running.
|
|
|
func (s *OssBucketSuite) TearDownSuite(c *C) {
|
|
func (s *OssBucketSuite) TearDownSuite(c *C) {
|
|
|
for _, bucket := range []*Bucket{s.bucket, s.archiveBucket} {
|
|
for _, bucket := range []*Bucket{s.bucket, s.archiveBucket} {
|
|
|
- // Delete Multipart
|
|
|
|
|
|
|
+ // Delete multipart
|
|
|
lmu, err := bucket.ListMultipartUploads()
|
|
lmu, err := bucket.ListMultipartUploads()
|
|
|
c.Assert(err, IsNil)
|
|
c.Assert(err, IsNil)
|
|
|
|
|
|
|
@@ -71,7 +71,7 @@ func (s *OssBucketSuite) TearDownSuite(c *C) {
|
|
|
c.Assert(err, IsNil)
|
|
c.Assert(err, IsNil)
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- // Delete Objects
|
|
|
|
|
|
|
+ // Delete objects
|
|
|
lor, err := bucket.ListObjects()
|
|
lor, err := bucket.ListObjects()
|
|
|
c.Assert(err, IsNil)
|
|
c.Assert(err, IsNil)
|
|
|
|
|
|
|
@@ -84,13 +84,13 @@ func (s *OssBucketSuite) TearDownSuite(c *C) {
|
|
|
testLogger.Println("test bucket completed")
|
|
testLogger.Println("test bucket completed")
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-// Run after each test or benchmark runs
|
|
|
|
|
|
|
+// SetUpTest runs after each test or benchmark runs.
|
|
|
func (s *OssBucketSuite) SetUpTest(c *C) {
|
|
func (s *OssBucketSuite) SetUpTest(c *C) {
|
|
|
err := removeTempFiles("../oss", ".jpg")
|
|
err := removeTempFiles("../oss", ".jpg")
|
|
|
c.Assert(err, IsNil)
|
|
c.Assert(err, IsNil)
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-// Run once after all tests or benchmarks have finished running
|
|
|
|
|
|
|
+// TearDownTest runs once after all tests or benchmarks have finished running.
|
|
|
func (s *OssBucketSuite) TearDownTest(c *C) {
|
|
func (s *OssBucketSuite) TearDownTest(c *C) {
|
|
|
err := removeTempFiles("../oss", ".jpg")
|
|
err := removeTempFiles("../oss", ".jpg")
|
|
|
c.Assert(err, IsNil)
|
|
c.Assert(err, IsNil)
|
|
@@ -114,7 +114,7 @@ func (s *OssBucketSuite) TestPutObject(c *C) {
|
|
|
objectValue := "大江东去,浪淘尽,千古风流人物。 故垒西边,人道是、三国周郎赤壁。 乱石穿空,惊涛拍岸,卷起千堆雪。 江山如画,一时多少豪杰。" +
|
|
objectValue := "大江东去,浪淘尽,千古风流人物。 故垒西边,人道是、三国周郎赤壁。 乱石穿空,惊涛拍岸,卷起千堆雪。 江山如画,一时多少豪杰。" +
|
|
|
"遥想公谨当年,小乔初嫁了,雄姿英发。 羽扇纶巾,谈笑间、樯橹灰飞烟灭。故国神游,多情应笑我,早生华发,人生如梦,一尊还酹江月。"
|
|
"遥想公谨当年,小乔初嫁了,雄姿英发。 羽扇纶巾,谈笑间、樯橹灰飞烟灭。故国神游,多情应笑我,早生华发,人生如梦,一尊还酹江月。"
|
|
|
|
|
|
|
|
- // string put
|
|
|
|
|
|
|
+ // Put string
|
|
|
err := s.bucket.PutObject(objectName, strings.NewReader(objectValue))
|
|
err := s.bucket.PutObject(objectName, strings.NewReader(objectValue))
|
|
|
c.Assert(err, IsNil)
|
|
c.Assert(err, IsNil)
|
|
|
|
|
|
|
@@ -133,7 +133,7 @@ func (s *OssBucketSuite) TestPutObject(c *C) {
|
|
|
err = s.bucket.DeleteObject(objectName)
|
|
err = s.bucket.DeleteObject(objectName)
|
|
|
c.Assert(err, IsNil)
|
|
c.Assert(err, IsNil)
|
|
|
|
|
|
|
|
- // bytes put
|
|
|
|
|
|
|
+ // Put bytes
|
|
|
err = s.bucket.PutObject(objectName, bytes.NewReader([]byte(objectValue)))
|
|
err = s.bucket.PutObject(objectName, bytes.NewReader([]byte(objectValue)))
|
|
|
c.Assert(err, IsNil)
|
|
c.Assert(err, IsNil)
|
|
|
|
|
|
|
@@ -147,7 +147,7 @@ func (s *OssBucketSuite) TestPutObject(c *C) {
|
|
|
err = s.bucket.DeleteObject(objectName)
|
|
err = s.bucket.DeleteObject(objectName)
|
|
|
c.Assert(err, IsNil)
|
|
c.Assert(err, IsNil)
|
|
|
|
|
|
|
|
- // file put
|
|
|
|
|
|
|
+ // Put file
|
|
|
err = createFileAndWrite(objectName+".txt", []byte(objectValue))
|
|
err = createFileAndWrite(objectName+".txt", []byte(objectValue))
|
|
|
c.Assert(err, IsNil)
|
|
c.Assert(err, IsNil)
|
|
|
fd, err := os.Open(objectName + ".txt")
|
|
fd, err := os.Open(objectName + ".txt")
|
|
@@ -209,14 +209,14 @@ func (s *OssBucketSuite) TestSignURL(c *C) {
|
|
|
notExistfilePath := randLowStr(10)
|
|
notExistfilePath := randLowStr(10)
|
|
|
os.Remove(notExistfilePath)
|
|
os.Remove(notExistfilePath)
|
|
|
|
|
|
|
|
- // sign url for put
|
|
|
|
|
|
|
+ // Sign URL for put
|
|
|
str, err := s.bucket.SignURL(objectName, HTTPPut, 60)
|
|
str, err := s.bucket.SignURL(objectName, HTTPPut, 60)
|
|
|
c.Assert(err, IsNil)
|
|
c.Assert(err, IsNil)
|
|
|
c.Assert(strings.Contains(str, HTTPParamExpires+"="), Equals, true)
|
|
c.Assert(strings.Contains(str, HTTPParamExpires+"="), Equals, true)
|
|
|
c.Assert(strings.Contains(str, HTTPParamAccessKeyID+"="), Equals, true)
|
|
c.Assert(strings.Contains(str, HTTPParamAccessKeyID+"="), Equals, true)
|
|
|
c.Assert(strings.Contains(str, HTTPParamSignature+"="), Equals, true)
|
|
c.Assert(strings.Contains(str, HTTPParamSignature+"="), Equals, true)
|
|
|
|
|
|
|
|
- // error put object with url
|
|
|
|
|
|
|
+ // Error put object with URL
|
|
|
err = s.bucket.PutObjectWithURL(str, strings.NewReader(objectValue), ContentType("image/tiff"))
|
|
err = s.bucket.PutObjectWithURL(str, strings.NewReader(objectValue), ContentType("image/tiff"))
|
|
|
c.Assert(err, NotNil)
|
|
c.Assert(err, NotNil)
|
|
|
c.Assert(err.(ServiceError).Code, Equals, "SignatureDoesNotMatch")
|
|
c.Assert(err.(ServiceError).Code, Equals, "SignatureDoesNotMatch")
|
|
@@ -225,7 +225,7 @@ func (s *OssBucketSuite) TestSignURL(c *C) {
|
|
|
c.Assert(err, NotNil)
|
|
c.Assert(err, NotNil)
|
|
|
c.Assert(err.(ServiceError).Code, Equals, "SignatureDoesNotMatch")
|
|
c.Assert(err.(ServiceError).Code, Equals, "SignatureDoesNotMatch")
|
|
|
|
|
|
|
|
- // put object with url
|
|
|
|
|
|
|
+ // Put object with URL
|
|
|
err = s.bucket.PutObjectWithURL(str, strings.NewReader(objectValue))
|
|
err = s.bucket.PutObjectWithURL(str, strings.NewReader(objectValue))
|
|
|
c.Assert(err, IsNil)
|
|
c.Assert(err, IsNil)
|
|
|
|
|
|
|
@@ -233,27 +233,27 @@ func (s *OssBucketSuite) TestSignURL(c *C) {
|
|
|
c.Assert(err, IsNil)
|
|
c.Assert(err, IsNil)
|
|
|
c.Assert(acl.ACL, Equals, "default")
|
|
c.Assert(acl.ACL, Equals, "default")
|
|
|
|
|
|
|
|
- // get object meta
|
|
|
|
|
|
|
+ // Get object meta
|
|
|
meta, err := s.bucket.GetObjectDetailedMeta(objectName)
|
|
meta, err := s.bucket.GetObjectDetailedMeta(objectName)
|
|
|
c.Assert(err, IsNil)
|
|
c.Assert(err, IsNil)
|
|
|
c.Assert(meta.Get(HTTPHeaderContentType), Equals, "application/octet-stream")
|
|
c.Assert(meta.Get(HTTPHeaderContentType), Equals, "application/octet-stream")
|
|
|
c.Assert(meta.Get("X-Oss-Meta-Myprop"), Equals, "")
|
|
c.Assert(meta.Get("X-Oss-Meta-Myprop"), Equals, "")
|
|
|
|
|
|
|
|
- // sign url for get object
|
|
|
|
|
|
|
+ // Sign URL for function GetObjectWithURL
|
|
|
str, err = s.bucket.SignURL(objectName, HTTPGet, 60)
|
|
str, err = s.bucket.SignURL(objectName, HTTPGet, 60)
|
|
|
c.Assert(err, IsNil)
|
|
c.Assert(err, IsNil)
|
|
|
c.Assert(strings.Contains(str, HTTPParamExpires+"="), Equals, true)
|
|
c.Assert(strings.Contains(str, HTTPParamExpires+"="), Equals, true)
|
|
|
c.Assert(strings.Contains(str, HTTPParamAccessKeyID+"="), Equals, true)
|
|
c.Assert(strings.Contains(str, HTTPParamAccessKeyID+"="), Equals, true)
|
|
|
c.Assert(strings.Contains(str, HTTPParamSignature+"="), Equals, true)
|
|
c.Assert(strings.Contains(str, HTTPParamSignature+"="), Equals, true)
|
|
|
|
|
|
|
|
- // get object with url
|
|
|
|
|
|
|
+ // Get object with URL
|
|
|
body, err := s.bucket.GetObjectWithURL(str)
|
|
body, err := s.bucket.GetObjectWithURL(str)
|
|
|
c.Assert(err, IsNil)
|
|
c.Assert(err, IsNil)
|
|
|
str, err = readBody(body)
|
|
str, err = readBody(body)
|
|
|
c.Assert(err, IsNil)
|
|
c.Assert(err, IsNil)
|
|
|
c.Assert(str, Equals, objectValue)
|
|
c.Assert(str, Equals, objectValue)
|
|
|
|
|
|
|
|
- // sign url for put with options
|
|
|
|
|
|
|
+ // Sign URL for function PutObjectWithURL
|
|
|
options := []Option{
|
|
options := []Option{
|
|
|
ObjectACL(ACLPublicRead),
|
|
ObjectACL(ACLPublicRead),
|
|
|
Meta("myprop", "mypropval"),
|
|
Meta("myprop", "mypropval"),
|
|
@@ -266,8 +266,8 @@ func (s *OssBucketSuite) TestSignURL(c *C) {
|
|
|
c.Assert(strings.Contains(str, HTTPParamAccessKeyID+"="), Equals, true)
|
|
c.Assert(strings.Contains(str, HTTPParamAccessKeyID+"="), Equals, true)
|
|
|
c.Assert(strings.Contains(str, HTTPParamSignature+"="), Equals, true)
|
|
c.Assert(strings.Contains(str, HTTPParamSignature+"="), Equals, true)
|
|
|
|
|
|
|
|
- // put object with url from file
|
|
|
|
|
- // without option, error
|
|
|
|
|
|
|
+ // Put object with URL from file
|
|
|
|
|
+ // Without option, error
|
|
|
err = s.bucket.PutObjectWithURL(str, strings.NewReader(objectValue))
|
|
err = s.bucket.PutObjectWithURL(str, strings.NewReader(objectValue))
|
|
|
c.Assert(err, NotNil)
|
|
c.Assert(err, NotNil)
|
|
|
c.Assert(err.(ServiceError).Code, Equals, "SignatureDoesNotMatch")
|
|
c.Assert(err.(ServiceError).Code, Equals, "SignatureDoesNotMatch")
|
|
@@ -276,15 +276,15 @@ func (s *OssBucketSuite) TestSignURL(c *C) {
|
|
|
c.Assert(err, NotNil)
|
|
c.Assert(err, NotNil)
|
|
|
c.Assert(err.(ServiceError).Code, Equals, "SignatureDoesNotMatch")
|
|
c.Assert(err.(ServiceError).Code, Equals, "SignatureDoesNotMatch")
|
|
|
|
|
|
|
|
- // with option, error file
|
|
|
|
|
|
|
+ // With option, error file
|
|
|
err = s.bucket.PutObjectFromFileWithURL(str, notExistfilePath, options...)
|
|
err = s.bucket.PutObjectFromFileWithURL(str, notExistfilePath, options...)
|
|
|
c.Assert(err, NotNil)
|
|
c.Assert(err, NotNil)
|
|
|
|
|
|
|
|
- // with option
|
|
|
|
|
|
|
+ // With option
|
|
|
err = s.bucket.PutObjectFromFileWithURL(str, filePath, options...)
|
|
err = s.bucket.PutObjectFromFileWithURL(str, filePath, options...)
|
|
|
c.Assert(err, IsNil)
|
|
c.Assert(err, IsNil)
|
|
|
|
|
|
|
|
- // get object meta
|
|
|
|
|
|
|
+ // Get object meta
|
|
|
meta, err = s.bucket.GetObjectDetailedMeta(objectName)
|
|
meta, err = s.bucket.GetObjectDetailedMeta(objectName)
|
|
|
c.Assert(err, IsNil)
|
|
c.Assert(err, IsNil)
|
|
|
c.Assert(meta.Get("X-Oss-Meta-Myprop"), Equals, "mypropval")
|
|
c.Assert(meta.Get("X-Oss-Meta-Myprop"), Equals, "mypropval")
|
|
@@ -294,11 +294,11 @@ func (s *OssBucketSuite) TestSignURL(c *C) {
|
|
|
c.Assert(err, IsNil)
|
|
c.Assert(err, IsNil)
|
|
|
c.Assert(acl.ACL, Equals, string(ACLPublicRead))
|
|
c.Assert(acl.ACL, Equals, string(ACLPublicRead))
|
|
|
|
|
|
|
|
- // sign url for get object
|
|
|
|
|
|
|
+ // Sign URL for function GetObjectToFileWithURL
|
|
|
str, err = s.bucket.SignURL(objectName, HTTPGet, 60)
|
|
str, err = s.bucket.SignURL(objectName, HTTPGet, 60)
|
|
|
c.Assert(err, IsNil)
|
|
c.Assert(err, IsNil)
|
|
|
|
|
|
|
|
- // get object to file with url
|
|
|
|
|
|
|
+ // Get object to file with URL
|
|
|
newFile := randStr(10)
|
|
newFile := randStr(10)
|
|
|
err = s.bucket.GetObjectToFileWithURL(str, newFile)
|
|
err = s.bucket.GetObjectToFileWithURL(str, newFile)
|
|
|
c.Assert(err, IsNil)
|
|
c.Assert(err, IsNil)
|
|
@@ -307,20 +307,20 @@ func (s *OssBucketSuite) TestSignURL(c *C) {
|
|
|
c.Assert(eq, Equals, true)
|
|
c.Assert(eq, Equals, true)
|
|
|
os.Remove(newFile)
|
|
os.Remove(newFile)
|
|
|
|
|
|
|
|
- // get object to file error
|
|
|
|
|
|
|
+ // Get object to file error
|
|
|
err = s.bucket.GetObjectToFileWithURL(str, newFile, options...)
|
|
err = s.bucket.GetObjectToFileWithURL(str, newFile, options...)
|
|
|
c.Assert(err, NotNil)
|
|
c.Assert(err, NotNil)
|
|
|
c.Assert(err.(ServiceError).Code, Equals, "SignatureDoesNotMatch")
|
|
c.Assert(err.(ServiceError).Code, Equals, "SignatureDoesNotMatch")
|
|
|
_, err = os.Stat(newFile)
|
|
_, err = os.Stat(newFile)
|
|
|
c.Assert(err, NotNil)
|
|
c.Assert(err, NotNil)
|
|
|
|
|
|
|
|
- // get object error
|
|
|
|
|
|
|
+ // Get object error
|
|
|
body, err = s.bucket.GetObjectWithURL(str, options...)
|
|
body, err = s.bucket.GetObjectWithURL(str, options...)
|
|
|
c.Assert(err, NotNil)
|
|
c.Assert(err, NotNil)
|
|
|
c.Assert(err.(ServiceError).Code, Equals, "SignatureDoesNotMatch")
|
|
c.Assert(err.(ServiceError).Code, Equals, "SignatureDoesNotMatch")
|
|
|
c.Assert(body, IsNil)
|
|
c.Assert(body, IsNil)
|
|
|
|
|
|
|
|
- // sign url for get object with options
|
|
|
|
|
|
|
+ // Sign URL for function GetObjectToFileWithURL
|
|
|
options = []Option{
|
|
options = []Option{
|
|
|
Expires(futureDate),
|
|
Expires(futureDate),
|
|
|
ObjectACL(ACLPublicRead),
|
|
ObjectACL(ACLPublicRead),
|
|
@@ -331,7 +331,7 @@ func (s *OssBucketSuite) TestSignURL(c *C) {
|
|
|
str, err = s.bucket.SignURL(objectName, HTTPGet, 60, options...)
|
|
str, err = s.bucket.SignURL(objectName, HTTPGet, 60, options...)
|
|
|
c.Assert(err, IsNil)
|
|
c.Assert(err, IsNil)
|
|
|
|
|
|
|
|
- // get object to file with url and options
|
|
|
|
|
|
|
+ // Get object to file with URL and options
|
|
|
err = s.bucket.GetObjectToFileWithURL(str, newFile, options...)
|
|
err = s.bucket.GetObjectToFileWithURL(str, newFile, options...)
|
|
|
c.Assert(err, IsNil)
|
|
c.Assert(err, IsNil)
|
|
|
eq, err = compareFiles(filePath, newFile)
|
|
eq, err = compareFiles(filePath, newFile)
|
|
@@ -339,14 +339,14 @@ func (s *OssBucketSuite) TestSignURL(c *C) {
|
|
|
c.Assert(eq, Equals, true)
|
|
c.Assert(eq, Equals, true)
|
|
|
os.Remove(newFile)
|
|
os.Remove(newFile)
|
|
|
|
|
|
|
|
- // get object to file error
|
|
|
|
|
|
|
+ // Get object to file error
|
|
|
err = s.bucket.GetObjectToFileWithURL(str, newFile)
|
|
err = s.bucket.GetObjectToFileWithURL(str, newFile)
|
|
|
c.Assert(err, NotNil)
|
|
c.Assert(err, NotNil)
|
|
|
c.Assert(err.(ServiceError).Code, Equals, "SignatureDoesNotMatch")
|
|
c.Assert(err.(ServiceError).Code, Equals, "SignatureDoesNotMatch")
|
|
|
_, err = os.Stat(newFile)
|
|
_, err = os.Stat(newFile)
|
|
|
c.Assert(err, NotNil)
|
|
c.Assert(err, NotNil)
|
|
|
|
|
|
|
|
- // get object error
|
|
|
|
|
|
|
+ // Get object error
|
|
|
body, err = s.bucket.GetObjectWithURL(str)
|
|
body, err = s.bucket.GetObjectWithURL(str)
|
|
|
c.Assert(err, NotNil)
|
|
c.Assert(err, NotNil)
|
|
|
c.Assert(err.(ServiceError).Code, Equals, "SignatureDoesNotMatch")
|
|
c.Assert(err.(ServiceError).Code, Equals, "SignatureDoesNotMatch")
|
|
@@ -355,14 +355,14 @@ func (s *OssBucketSuite) TestSignURL(c *C) {
|
|
|
os.Remove(filePath)
|
|
os.Remove(filePath)
|
|
|
os.Remove(newFile)
|
|
os.Remove(newFile)
|
|
|
|
|
|
|
|
- // sign url error
|
|
|
|
|
|
|
+ // Sign URL error
|
|
|
str, err = s.bucket.SignURL(objectName, HTTPGet, -1)
|
|
str, err = s.bucket.SignURL(objectName, HTTPGet, -1)
|
|
|
c.Assert(err, NotNil)
|
|
c.Assert(err, NotNil)
|
|
|
|
|
|
|
|
err = s.bucket.DeleteObject(objectName)
|
|
err = s.bucket.DeleteObject(objectName)
|
|
|
c.Assert(err, IsNil)
|
|
c.Assert(err, IsNil)
|
|
|
|
|
|
|
|
- // invalid url parse
|
|
|
|
|
|
|
+ // Invalid URL parse
|
|
|
str = randStr(20)
|
|
str = randStr(20)
|
|
|
|
|
|
|
|
err = s.bucket.PutObjectWithURL(str, strings.NewReader(objectValue))
|
|
err = s.bucket.PutObjectWithURL(str, strings.NewReader(objectValue))
|
|
@@ -373,132 +373,132 @@ func (s *OssBucketSuite) TestSignURL(c *C) {
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
func (s *OssBucketSuite) TestSignURLWithEscapedKey(c *C) {
|
|
func (s *OssBucketSuite) TestSignURLWithEscapedKey(c *C) {
|
|
|
- // key with '/'
|
|
|
|
|
|
|
+ // Key with '/'
|
|
|
objectName := "zyimg/86/e8/653b5dc97bb0022051a84c632bc4"
|
|
objectName := "zyimg/86/e8/653b5dc97bb0022051a84c632bc4"
|
|
|
objectValue := "弃我去者,昨日之日不可留;乱我心者,今日之日多烦忧。长风万里送秋雁,对此可以酣高楼。蓬莱文章建安骨,中间小谢又清发。" +
|
|
objectValue := "弃我去者,昨日之日不可留;乱我心者,今日之日多烦忧。长风万里送秋雁,对此可以酣高楼。蓬莱文章建安骨,中间小谢又清发。" +
|
|
|
"俱怀逸兴壮思飞,欲上青天揽明月。抽刀断水水更流,举杯销愁愁更愁。人生在世不称意,明朝散发弄扁舟。"
|
|
"俱怀逸兴壮思飞,欲上青天揽明月。抽刀断水水更流,举杯销愁愁更愁。人生在世不称意,明朝散发弄扁舟。"
|
|
|
|
|
|
|
|
- // sign url for put
|
|
|
|
|
|
|
+ // Sign URL for function PutObjectWithURL
|
|
|
str, err := s.bucket.SignURL(objectName, HTTPPut, 60)
|
|
str, err := s.bucket.SignURL(objectName, HTTPPut, 60)
|
|
|
c.Assert(err, IsNil)
|
|
c.Assert(err, IsNil)
|
|
|
c.Assert(strings.Contains(str, HTTPParamExpires+"="), Equals, true)
|
|
c.Assert(strings.Contains(str, HTTPParamExpires+"="), Equals, true)
|
|
|
c.Assert(strings.Contains(str, HTTPParamAccessKeyID+"="), Equals, true)
|
|
c.Assert(strings.Contains(str, HTTPParamAccessKeyID+"="), Equals, true)
|
|
|
c.Assert(strings.Contains(str, HTTPParamSignature+"="), Equals, true)
|
|
c.Assert(strings.Contains(str, HTTPParamSignature+"="), Equals, true)
|
|
|
|
|
|
|
|
- // put object with url
|
|
|
|
|
|
|
+ // Put object with URL
|
|
|
err = s.bucket.PutObjectWithURL(str, strings.NewReader(objectValue))
|
|
err = s.bucket.PutObjectWithURL(str, strings.NewReader(objectValue))
|
|
|
c.Assert(err, IsNil)
|
|
c.Assert(err, IsNil)
|
|
|
|
|
|
|
|
- // sign url for get object
|
|
|
|
|
|
|
+ // Sign URL for function GetObjectWithURL
|
|
|
str, err = s.bucket.SignURL(objectName, HTTPGet, 60)
|
|
str, err = s.bucket.SignURL(objectName, HTTPGet, 60)
|
|
|
c.Assert(err, IsNil)
|
|
c.Assert(err, IsNil)
|
|
|
c.Assert(strings.Contains(str, HTTPParamExpires+"="), Equals, true)
|
|
c.Assert(strings.Contains(str, HTTPParamExpires+"="), Equals, true)
|
|
|
c.Assert(strings.Contains(str, HTTPParamAccessKeyID+"="), Equals, true)
|
|
c.Assert(strings.Contains(str, HTTPParamAccessKeyID+"="), Equals, true)
|
|
|
c.Assert(strings.Contains(str, HTTPParamSignature+"="), Equals, true)
|
|
c.Assert(strings.Contains(str, HTTPParamSignature+"="), Equals, true)
|
|
|
|
|
|
|
|
- // get object with url
|
|
|
|
|
|
|
+ // Get object with URL
|
|
|
body, err := s.bucket.GetObjectWithURL(str)
|
|
body, err := s.bucket.GetObjectWithURL(str)
|
|
|
c.Assert(err, IsNil)
|
|
c.Assert(err, IsNil)
|
|
|
str, err = readBody(body)
|
|
str, err = readBody(body)
|
|
|
c.Assert(err, IsNil)
|
|
c.Assert(err, IsNil)
|
|
|
c.Assert(str, Equals, objectValue)
|
|
c.Assert(str, Equals, objectValue)
|
|
|
|
|
|
|
|
- // key with escaped chars
|
|
|
|
|
|
|
+ // Key with escaped chars
|
|
|
objectName = "<>[]()`?.,!@#$%^&'/*-_=+~:;"
|
|
objectName = "<>[]()`?.,!@#$%^&'/*-_=+~:;"
|
|
|
|
|
|
|
|
- // sign url for put
|
|
|
|
|
|
|
+ // Sign URL for funciton PutObjectWithURL
|
|
|
str, err = s.bucket.SignURL(objectName, HTTPPut, 60)
|
|
str, err = s.bucket.SignURL(objectName, HTTPPut, 60)
|
|
|
c.Assert(err, IsNil)
|
|
c.Assert(err, IsNil)
|
|
|
c.Assert(strings.Contains(str, HTTPParamExpires+"="), Equals, true)
|
|
c.Assert(strings.Contains(str, HTTPParamExpires+"="), Equals, true)
|
|
|
c.Assert(strings.Contains(str, HTTPParamAccessKeyID+"="), Equals, true)
|
|
c.Assert(strings.Contains(str, HTTPParamAccessKeyID+"="), Equals, true)
|
|
|
c.Assert(strings.Contains(str, HTTPParamSignature+"="), Equals, true)
|
|
c.Assert(strings.Contains(str, HTTPParamSignature+"="), Equals, true)
|
|
|
|
|
|
|
|
- // put object with url
|
|
|
|
|
|
|
+ // Put object with URL
|
|
|
err = s.bucket.PutObjectWithURL(str, strings.NewReader(objectValue))
|
|
err = s.bucket.PutObjectWithURL(str, strings.NewReader(objectValue))
|
|
|
c.Assert(err, IsNil)
|
|
c.Assert(err, IsNil)
|
|
|
|
|
|
|
|
- // sign url for get object
|
|
|
|
|
|
|
+ // Sign URL for function GetObjectWithURL
|
|
|
str, err = s.bucket.SignURL(objectName, HTTPGet, 60)
|
|
str, err = s.bucket.SignURL(objectName, HTTPGet, 60)
|
|
|
c.Assert(err, IsNil)
|
|
c.Assert(err, IsNil)
|
|
|
c.Assert(strings.Contains(str, HTTPParamExpires+"="), Equals, true)
|
|
c.Assert(strings.Contains(str, HTTPParamExpires+"="), Equals, true)
|
|
|
c.Assert(strings.Contains(str, HTTPParamAccessKeyID+"="), Equals, true)
|
|
c.Assert(strings.Contains(str, HTTPParamAccessKeyID+"="), Equals, true)
|
|
|
c.Assert(strings.Contains(str, HTTPParamSignature+"="), Equals, true)
|
|
c.Assert(strings.Contains(str, HTTPParamSignature+"="), Equals, true)
|
|
|
|
|
|
|
|
- // get object with url
|
|
|
|
|
|
|
+ // Get object with URL
|
|
|
body, err = s.bucket.GetObjectWithURL(str)
|
|
body, err = s.bucket.GetObjectWithURL(str)
|
|
|
c.Assert(err, IsNil)
|
|
c.Assert(err, IsNil)
|
|
|
str, err = readBody(body)
|
|
str, err = readBody(body)
|
|
|
c.Assert(err, IsNil)
|
|
c.Assert(err, IsNil)
|
|
|
c.Assert(str, Equals, objectValue)
|
|
c.Assert(str, Equals, objectValue)
|
|
|
|
|
|
|
|
- // key with Chinese chars
|
|
|
|
|
|
|
+ // Key with Chinese chars
|
|
|
objectName = "风吹柳花满店香,吴姬压酒劝客尝。金陵子弟来相送,欲行不行各尽觞。请君试问东流水,别意与之谁短长。"
|
|
objectName = "风吹柳花满店香,吴姬压酒劝客尝。金陵子弟来相送,欲行不行各尽觞。请君试问东流水,别意与之谁短长。"
|
|
|
|
|
|
|
|
- // sign url for put
|
|
|
|
|
|
|
+ // Sign URL for function PutObjectWithURL
|
|
|
str, err = s.bucket.SignURL(objectName, HTTPPut, 60)
|
|
str, err = s.bucket.SignURL(objectName, HTTPPut, 60)
|
|
|
c.Assert(err, IsNil)
|
|
c.Assert(err, IsNil)
|
|
|
c.Assert(strings.Contains(str, HTTPParamExpires+"="), Equals, true)
|
|
c.Assert(strings.Contains(str, HTTPParamExpires+"="), Equals, true)
|
|
|
c.Assert(strings.Contains(str, HTTPParamAccessKeyID+"="), Equals, true)
|
|
c.Assert(strings.Contains(str, HTTPParamAccessKeyID+"="), Equals, true)
|
|
|
c.Assert(strings.Contains(str, HTTPParamSignature+"="), Equals, true)
|
|
c.Assert(strings.Contains(str, HTTPParamSignature+"="), Equals, true)
|
|
|
|
|
|
|
|
- // put object with url
|
|
|
|
|
|
|
+ // Put object with URL
|
|
|
err = s.bucket.PutObjectWithURL(str, strings.NewReader(objectValue))
|
|
err = s.bucket.PutObjectWithURL(str, strings.NewReader(objectValue))
|
|
|
c.Assert(err, IsNil)
|
|
c.Assert(err, IsNil)
|
|
|
|
|
|
|
|
- // sign url for get object
|
|
|
|
|
|
|
+ // Sign URL for get function GetObjectWithURL
|
|
|
str, err = s.bucket.SignURL(objectName, HTTPGet, 60)
|
|
str, err = s.bucket.SignURL(objectName, HTTPGet, 60)
|
|
|
c.Assert(err, IsNil)
|
|
c.Assert(err, IsNil)
|
|
|
c.Assert(strings.Contains(str, HTTPParamExpires+"="), Equals, true)
|
|
c.Assert(strings.Contains(str, HTTPParamExpires+"="), Equals, true)
|
|
|
c.Assert(strings.Contains(str, HTTPParamAccessKeyID+"="), Equals, true)
|
|
c.Assert(strings.Contains(str, HTTPParamAccessKeyID+"="), Equals, true)
|
|
|
c.Assert(strings.Contains(str, HTTPParamSignature+"="), Equals, true)
|
|
c.Assert(strings.Contains(str, HTTPParamSignature+"="), Equals, true)
|
|
|
|
|
|
|
|
- // get object with url
|
|
|
|
|
|
|
+ // Get object with URL
|
|
|
body, err = s.bucket.GetObjectWithURL(str)
|
|
body, err = s.bucket.GetObjectWithURL(str)
|
|
|
c.Assert(err, IsNil)
|
|
c.Assert(err, IsNil)
|
|
|
str, err = readBody(body)
|
|
str, err = readBody(body)
|
|
|
c.Assert(err, IsNil)
|
|
c.Assert(err, IsNil)
|
|
|
c.Assert(str, Equals, objectValue)
|
|
c.Assert(str, Equals, objectValue)
|
|
|
|
|
|
|
|
- // key
|
|
|
|
|
|
|
+ // Key
|
|
|
objectName = "test/此情无计可消除/才下眉头/却上 心头/。,;:‘’“”?()『』【】《》!@#¥%……&×/test+ =-_*&^%$#@!`~[]{}()<>|\\/?.,;.txt"
|
|
objectName = "test/此情无计可消除/才下眉头/却上 心头/。,;:‘’“”?()『』【】《》!@#¥%……&×/test+ =-_*&^%$#@!`~[]{}()<>|\\/?.,;.txt"
|
|
|
|
|
|
|
|
- // sign url for put
|
|
|
|
|
|
|
+ // Sign URL for function PutObjectWithURL
|
|
|
str, err = s.bucket.SignURL(objectName, HTTPPut, 60)
|
|
str, err = s.bucket.SignURL(objectName, HTTPPut, 60)
|
|
|
c.Assert(err, IsNil)
|
|
c.Assert(err, IsNil)
|
|
|
|
|
|
|
|
- // put object with url
|
|
|
|
|
|
|
+ // Put object with URL
|
|
|
err = s.bucket.PutObjectWithURL(str, strings.NewReader(objectValue))
|
|
err = s.bucket.PutObjectWithURL(str, strings.NewReader(objectValue))
|
|
|
c.Assert(err, IsNil)
|
|
c.Assert(err, IsNil)
|
|
|
|
|
|
|
|
- // sign url for get object
|
|
|
|
|
|
|
+ // Sign URL for function GetObjectWithURL
|
|
|
str, err = s.bucket.SignURL(objectName, HTTPGet, 60)
|
|
str, err = s.bucket.SignURL(objectName, HTTPGet, 60)
|
|
|
c.Assert(err, IsNil)
|
|
c.Assert(err, IsNil)
|
|
|
|
|
|
|
|
- // get object with url
|
|
|
|
|
|
|
+ // Get object with URL
|
|
|
body, err = s.bucket.GetObjectWithURL(str)
|
|
body, err = s.bucket.GetObjectWithURL(str)
|
|
|
c.Assert(err, IsNil)
|
|
c.Assert(err, IsNil)
|
|
|
str, err = readBody(body)
|
|
str, err = readBody(body)
|
|
|
c.Assert(err, IsNil)
|
|
c.Assert(err, IsNil)
|
|
|
c.Assert(str, Equals, objectValue)
|
|
c.Assert(str, Equals, objectValue)
|
|
|
|
|
|
|
|
- // put object
|
|
|
|
|
|
|
+ // Put object
|
|
|
err = s.bucket.PutObject(objectName, bytes.NewReader([]byte(objectValue)))
|
|
err = s.bucket.PutObject(objectName, bytes.NewReader([]byte(objectValue)))
|
|
|
c.Assert(err, IsNil)
|
|
c.Assert(err, IsNil)
|
|
|
|
|
|
|
|
- // get object
|
|
|
|
|
|
|
+ // Get object
|
|
|
body, err = s.bucket.GetObject(objectName)
|
|
body, err = s.bucket.GetObject(objectName)
|
|
|
c.Assert(err, IsNil)
|
|
c.Assert(err, IsNil)
|
|
|
str, err = readBody(body)
|
|
str, err = readBody(body)
|
|
|
c.Assert(err, IsNil)
|
|
c.Assert(err, IsNil)
|
|
|
c.Assert(str, Equals, objectValue)
|
|
c.Assert(str, Equals, objectValue)
|
|
|
|
|
|
|
|
- // delete object
|
|
|
|
|
|
|
+ // Delete object
|
|
|
err = s.bucket.DeleteObject(objectName)
|
|
err = s.bucket.DeleteObject(objectName)
|
|
|
c.Assert(err, IsNil)
|
|
c.Assert(err, IsNil)
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
func (s *OssBucketSuite) TestSignURLWithEscapedKeyAndPorxy(c *C) {
|
|
func (s *OssBucketSuite) TestSignURLWithEscapedKeyAndPorxy(c *C) {
|
|
|
- // key with '/'
|
|
|
|
|
|
|
+ // Key with '/'
|
|
|
objectName := "zyimg/86/e8/653b5dc97bb0022051a84c632bc4"
|
|
objectName := "zyimg/86/e8/653b5dc97bb0022051a84c632bc4"
|
|
|
objectValue := "弃我去者,昨日之日不可留;乱我心者,今日之日多烦忧。长风万里送秋雁,对此可以酣高楼。蓬莱文章建安骨,中间小谢又清发。" +
|
|
objectValue := "弃我去者,昨日之日不可留;乱我心者,今日之日多烦忧。长风万里送秋雁,对此可以酣高楼。蓬莱文章建安骨,中间小谢又清发。" +
|
|
|
"俱怀逸兴壮思飞,欲上青天揽明月。抽刀断水水更流,举杯销愁愁更愁。人生在世不称意,明朝散发弄扁舟。"
|
|
"俱怀逸兴壮思飞,欲上青天揽明月。抽刀断水水更流,举杯销愁愁更愁。人生在世不称意,明朝散发弄扁舟。"
|
|
@@ -506,65 +506,65 @@ func (s *OssBucketSuite) TestSignURLWithEscapedKeyAndPorxy(c *C) {
|
|
|
client, err := New(endpoint, accessID, accessKey, AuthProxy(proxyHost, proxyUser, proxyPasswd))
|
|
client, err := New(endpoint, accessID, accessKey, AuthProxy(proxyHost, proxyUser, proxyPasswd))
|
|
|
bucket, err := client.Bucket(bucketName)
|
|
bucket, err := client.Bucket(bucketName)
|
|
|
|
|
|
|
|
- // sign url for put
|
|
|
|
|
|
|
+ // Sign URL for put
|
|
|
str, err := bucket.SignURL(objectName, HTTPPut, 60)
|
|
str, err := bucket.SignURL(objectName, HTTPPut, 60)
|
|
|
c.Assert(err, IsNil)
|
|
c.Assert(err, IsNil)
|
|
|
c.Assert(strings.Contains(str, HTTPParamExpires+"="), Equals, true)
|
|
c.Assert(strings.Contains(str, HTTPParamExpires+"="), Equals, true)
|
|
|
c.Assert(strings.Contains(str, HTTPParamAccessKeyID+"="), Equals, true)
|
|
c.Assert(strings.Contains(str, HTTPParamAccessKeyID+"="), Equals, true)
|
|
|
c.Assert(strings.Contains(str, HTTPParamSignature+"="), Equals, true)
|
|
c.Assert(strings.Contains(str, HTTPParamSignature+"="), Equals, true)
|
|
|
|
|
|
|
|
- // put object with url
|
|
|
|
|
|
|
+ // Put object with URL
|
|
|
err = bucket.PutObjectWithURL(str, strings.NewReader(objectValue))
|
|
err = bucket.PutObjectWithURL(str, strings.NewReader(objectValue))
|
|
|
c.Assert(err, IsNil)
|
|
c.Assert(err, IsNil)
|
|
|
|
|
|
|
|
- // sign url for get object
|
|
|
|
|
|
|
+ // Sign URL for function GetObjectWithURL
|
|
|
str, err = bucket.SignURL(objectName, HTTPGet, 60)
|
|
str, err = bucket.SignURL(objectName, HTTPGet, 60)
|
|
|
c.Assert(err, IsNil)
|
|
c.Assert(err, IsNil)
|
|
|
c.Assert(strings.Contains(str, HTTPParamExpires+"="), Equals, true)
|
|
c.Assert(strings.Contains(str, HTTPParamExpires+"="), Equals, true)
|
|
|
c.Assert(strings.Contains(str, HTTPParamAccessKeyID+"="), Equals, true)
|
|
c.Assert(strings.Contains(str, HTTPParamAccessKeyID+"="), Equals, true)
|
|
|
c.Assert(strings.Contains(str, HTTPParamSignature+"="), Equals, true)
|
|
c.Assert(strings.Contains(str, HTTPParamSignature+"="), Equals, true)
|
|
|
|
|
|
|
|
- // get object with url
|
|
|
|
|
|
|
+ // Get object with URL
|
|
|
body, err := bucket.GetObjectWithURL(str)
|
|
body, err := bucket.GetObjectWithURL(str)
|
|
|
c.Assert(err, IsNil)
|
|
c.Assert(err, IsNil)
|
|
|
str, err = readBody(body)
|
|
str, err = readBody(body)
|
|
|
c.Assert(err, IsNil)
|
|
c.Assert(err, IsNil)
|
|
|
c.Assert(str, Equals, objectValue)
|
|
c.Assert(str, Equals, objectValue)
|
|
|
|
|
|
|
|
- // key with Chinese chars
|
|
|
|
|
|
|
+ // Key with Chinese chars
|
|
|
objectName = "test/此情无计可消除/才下眉头/却上 心头/。,;:‘’“”?()『』【】《》!@#¥%……&×/test+ =-_*&^%$#@!`~[]{}()<>|\\/?.,;.txt"
|
|
objectName = "test/此情无计可消除/才下眉头/却上 心头/。,;:‘’“”?()『』【】《》!@#¥%……&×/test+ =-_*&^%$#@!`~[]{}()<>|\\/?.,;.txt"
|
|
|
|
|
|
|
|
- // sign url for put
|
|
|
|
|
|
|
+ // Sign URL for function PutObjectWithURL
|
|
|
str, err = bucket.SignURL(objectName, HTTPPut, 60)
|
|
str, err = bucket.SignURL(objectName, HTTPPut, 60)
|
|
|
c.Assert(err, IsNil)
|
|
c.Assert(err, IsNil)
|
|
|
|
|
|
|
|
- // put object with url
|
|
|
|
|
|
|
+ // Put object with URL
|
|
|
err = bucket.PutObjectWithURL(str, strings.NewReader(objectValue))
|
|
err = bucket.PutObjectWithURL(str, strings.NewReader(objectValue))
|
|
|
c.Assert(err, IsNil)
|
|
c.Assert(err, IsNil)
|
|
|
|
|
|
|
|
- // sign url for get object
|
|
|
|
|
|
|
+ // Sign URL for function GetObjectWithURL
|
|
|
str, err = bucket.SignURL(objectName, HTTPGet, 60)
|
|
str, err = bucket.SignURL(objectName, HTTPGet, 60)
|
|
|
c.Assert(err, IsNil)
|
|
c.Assert(err, IsNil)
|
|
|
|
|
|
|
|
- // get object with url
|
|
|
|
|
|
|
+ // Get object with URL
|
|
|
body, err = bucket.GetObjectWithURL(str)
|
|
body, err = bucket.GetObjectWithURL(str)
|
|
|
c.Assert(err, IsNil)
|
|
c.Assert(err, IsNil)
|
|
|
str, err = readBody(body)
|
|
str, err = readBody(body)
|
|
|
c.Assert(err, IsNil)
|
|
c.Assert(err, IsNil)
|
|
|
c.Assert(str, Equals, objectValue)
|
|
c.Assert(str, Equals, objectValue)
|
|
|
|
|
|
|
|
- // put object
|
|
|
|
|
|
|
+ // Put object
|
|
|
err = bucket.PutObject(objectName, bytes.NewReader([]byte(objectValue)))
|
|
err = bucket.PutObject(objectName, bytes.NewReader([]byte(objectValue)))
|
|
|
c.Assert(err, IsNil)
|
|
c.Assert(err, IsNil)
|
|
|
|
|
|
|
|
- // get object
|
|
|
|
|
|
|
+ // Get object
|
|
|
body, err = bucket.GetObject(objectName)
|
|
body, err = bucket.GetObject(objectName)
|
|
|
c.Assert(err, IsNil)
|
|
c.Assert(err, IsNil)
|
|
|
str, err = readBody(body)
|
|
str, err = readBody(body)
|
|
|
c.Assert(err, IsNil)
|
|
c.Assert(err, IsNil)
|
|
|
c.Assert(str, Equals, objectValue)
|
|
c.Assert(str, Equals, objectValue)
|
|
|
|
|
|
|
|
- // delete object
|
|
|
|
|
|
|
+ // Delete object
|
|
|
err = bucket.DeleteObject(objectName)
|
|
err = bucket.DeleteObject(objectName)
|
|
|
c.Assert(err, IsNil)
|
|
c.Assert(err, IsNil)
|
|
|
}
|
|
}
|
|
@@ -708,7 +708,7 @@ func (s *OssBucketSuite) TestPutObjectNegative(c *C) {
|
|
|
err = s.bucket.DeleteObject(objectName)
|
|
err = s.bucket.DeleteObject(objectName)
|
|
|
c.Assert(err, IsNil)
|
|
c.Assert(err, IsNil)
|
|
|
|
|
|
|
|
- // invalid option
|
|
|
|
|
|
|
+ // Invalid option
|
|
|
err = s.bucket.PutObject(objectName, strings.NewReader(objectValue),
|
|
err = s.bucket.PutObject(objectName, strings.NewReader(objectValue),
|
|
|
IfModifiedSince(pastDate))
|
|
IfModifiedSince(pastDate))
|
|
|
c.Assert(err, NotNil)
|
|
c.Assert(err, NotNil)
|
|
@@ -865,23 +865,23 @@ func (s *OssBucketSuite) TestGetObjectToWriterNegative(c *C) {
|
|
|
objectName := objectNamePrefix + "tgotwn"
|
|
objectName := objectNamePrefix + "tgotwn"
|
|
|
objectValue := "长忆观潮,满郭人争江上望。"
|
|
objectValue := "长忆观潮,满郭人争江上望。"
|
|
|
|
|
|
|
|
- // object not exist
|
|
|
|
|
|
|
+ // Object not exist
|
|
|
_, err := s.bucket.GetObject("NotExist")
|
|
_, err := s.bucket.GetObject("NotExist")
|
|
|
c.Assert(err, NotNil)
|
|
c.Assert(err, NotNil)
|
|
|
|
|
|
|
|
- // constraint invalid
|
|
|
|
|
|
|
+ // Constraint invalid
|
|
|
err = s.bucket.PutObject(objectName, strings.NewReader(objectValue))
|
|
err = s.bucket.PutObject(objectName, strings.NewReader(objectValue))
|
|
|
c.Assert(err, IsNil)
|
|
c.Assert(err, IsNil)
|
|
|
|
|
|
|
|
- // out of range
|
|
|
|
|
|
|
+ // Out of range
|
|
|
_, err = s.bucket.GetObject(objectName, Range(15, 1000))
|
|
_, err = s.bucket.GetObject(objectName, Range(15, 1000))
|
|
|
c.Assert(err, IsNil)
|
|
c.Assert(err, IsNil)
|
|
|
|
|
|
|
|
- // no exist
|
|
|
|
|
|
|
+ // Not exist
|
|
|
err = s.bucket.GetObjectToFile(objectName, "/root/123abc9874")
|
|
err = s.bucket.GetObjectToFile(objectName, "/root/123abc9874")
|
|
|
c.Assert(err, NotNil)
|
|
c.Assert(err, NotNil)
|
|
|
|
|
|
|
|
- // invalid option
|
|
|
|
|
|
|
+ // Invalid option
|
|
|
_, err = s.bucket.GetObject(objectName, ACL(ACLPublicRead))
|
|
_, err = s.bucket.GetObject(objectName, ACL(ACLPublicRead))
|
|
|
c.Assert(err, IsNil)
|
|
c.Assert(err, IsNil)
|
|
|
|
|
|
|
@@ -976,12 +976,12 @@ func (s *OssBucketSuite) TestGetObjectToFile(c *C) {
|
|
|
func (s *OssBucketSuite) TestListObjects(c *C) {
|
|
func (s *OssBucketSuite) TestListObjects(c *C) {
|
|
|
objectName := objectNamePrefix + "tlo"
|
|
objectName := objectNamePrefix + "tlo"
|
|
|
|
|
|
|
|
- // list empty bucket
|
|
|
|
|
|
|
+ // List empty bucket
|
|
|
lor, err := s.bucket.ListObjects()
|
|
lor, err := s.bucket.ListObjects()
|
|
|
c.Assert(err, IsNil)
|
|
c.Assert(err, IsNil)
|
|
|
left := len(lor.Objects)
|
|
left := len(lor.Objects)
|
|
|
|
|
|
|
|
- // Put three object
|
|
|
|
|
|
|
+ // Put three objects
|
|
|
err = s.bucket.PutObject(objectName+"1", strings.NewReader(""))
|
|
err = s.bucket.PutObject(objectName+"1", strings.NewReader(""))
|
|
|
c.Assert(err, IsNil)
|
|
c.Assert(err, IsNil)
|
|
|
err = s.bucket.PutObject(objectName+"2", strings.NewReader(""))
|
|
err = s.bucket.PutObject(objectName+"2", strings.NewReader(""))
|
|
@@ -989,12 +989,12 @@ func (s *OssBucketSuite) TestListObjects(c *C) {
|
|
|
err = s.bucket.PutObject(objectName+"3", strings.NewReader(""))
|
|
err = s.bucket.PutObject(objectName+"3", strings.NewReader(""))
|
|
|
c.Assert(err, IsNil)
|
|
c.Assert(err, IsNil)
|
|
|
|
|
|
|
|
- // list
|
|
|
|
|
|
|
+ // List
|
|
|
lor, err = s.bucket.ListObjects()
|
|
lor, err = s.bucket.ListObjects()
|
|
|
c.Assert(err, IsNil)
|
|
c.Assert(err, IsNil)
|
|
|
c.Assert(len(lor.Objects), Equals, left+3)
|
|
c.Assert(len(lor.Objects), Equals, left+3)
|
|
|
|
|
|
|
|
- // list with prefix
|
|
|
|
|
|
|
+ // List with prefix
|
|
|
lor, err = s.bucket.ListObjects(Prefix(objectName + "2"))
|
|
lor, err = s.bucket.ListObjects(Prefix(objectName + "2"))
|
|
|
c.Assert(err, IsNil)
|
|
c.Assert(err, IsNil)
|
|
|
c.Assert(len(lor.Objects), Equals, 1)
|
|
c.Assert(len(lor.Objects), Equals, 1)
|
|
@@ -1003,12 +1003,12 @@ func (s *OssBucketSuite) TestListObjects(c *C) {
|
|
|
c.Assert(err, IsNil)
|
|
c.Assert(err, IsNil)
|
|
|
c.Assert(len(lor.Objects), Equals, 0)
|
|
c.Assert(len(lor.Objects), Equals, 0)
|
|
|
|
|
|
|
|
- // list with max keys
|
|
|
|
|
|
|
+ // List with max keys
|
|
|
lor, err = s.bucket.ListObjects(Prefix(objectName), MaxKeys(2))
|
|
lor, err = s.bucket.ListObjects(Prefix(objectName), MaxKeys(2))
|
|
|
c.Assert(err, IsNil)
|
|
c.Assert(err, IsNil)
|
|
|
c.Assert(len(lor.Objects), Equals, 2)
|
|
c.Assert(len(lor.Objects), Equals, 2)
|
|
|
|
|
|
|
|
- // list with marker
|
|
|
|
|
|
|
+ // List with marker
|
|
|
lor, err = s.bucket.ListObjects(Marker(objectName+"1"), MaxKeys(1))
|
|
lor, err = s.bucket.ListObjects(Marker(objectName+"1"), MaxKeys(1))
|
|
|
c.Assert(err, IsNil)
|
|
c.Assert(err, IsNil)
|
|
|
c.Assert(len(lor.Objects), Equals, 1)
|
|
c.Assert(len(lor.Objects), Equals, 1)
|
|
@@ -1053,7 +1053,7 @@ func (s *OssBucketSuite) TestListObjectsEncodingType(c *C) {
|
|
|
c.Assert(err, IsNil)
|
|
c.Assert(err, IsNil)
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- // 特殊字符
|
|
|
|
|
|
|
+ // Special characters
|
|
|
objectName = "go go ` ~ ! @ # $ % ^ & * () - _ + =[] {} \\ | < > , . ? / 0"
|
|
objectName = "go go ` ~ ! @ # $ % ^ & * () - _ + =[] {} \\ | < > , . ? / 0"
|
|
|
err = s.bucket.PutObject(objectName, strings.NewReader("明月几时有,把酒问青天"))
|
|
err = s.bucket.PutObject(objectName, strings.NewReader("明月几时有,把酒问青天"))
|
|
|
c.Assert(err, IsNil)
|
|
c.Assert(err, IsNil)
|
|
@@ -1081,7 +1081,7 @@ func (s *OssBucketSuite) TestListObjectsEncodingType(c *C) {
|
|
|
func (s *OssBucketSuite) TestIsObjectExist(c *C) {
|
|
func (s *OssBucketSuite) TestIsObjectExist(c *C) {
|
|
|
objectName := objectNamePrefix + "tibe"
|
|
objectName := objectNamePrefix + "tibe"
|
|
|
|
|
|
|
|
- // Put three object
|
|
|
|
|
|
|
+ // Put three objects
|
|
|
err := s.bucket.PutObject(objectName+"1", strings.NewReader(""))
|
|
err := s.bucket.PutObject(objectName+"1", strings.NewReader(""))
|
|
|
c.Assert(err, IsNil)
|
|
c.Assert(err, IsNil)
|
|
|
err = s.bucket.PutObject(objectName+"11", strings.NewReader(""))
|
|
err = s.bucket.PutObject(objectName+"11", strings.NewReader(""))
|
|
@@ -1089,7 +1089,7 @@ func (s *OssBucketSuite) TestIsObjectExist(c *C) {
|
|
|
err = s.bucket.PutObject(objectName+"111", strings.NewReader(""))
|
|
err = s.bucket.PutObject(objectName+"111", strings.NewReader(""))
|
|
|
c.Assert(err, IsNil)
|
|
c.Assert(err, IsNil)
|
|
|
|
|
|
|
|
- // exist
|
|
|
|
|
|
|
+ // Exist
|
|
|
exist, err := s.bucket.IsObjectExist(objectName + "11")
|
|
exist, err := s.bucket.IsObjectExist(objectName + "11")
|
|
|
c.Assert(err, IsNil)
|
|
c.Assert(err, IsNil)
|
|
|
c.Assert(exist, Equals, true)
|
|
c.Assert(exist, Equals, true)
|
|
@@ -1102,7 +1102,7 @@ func (s *OssBucketSuite) TestIsObjectExist(c *C) {
|
|
|
c.Assert(err, IsNil)
|
|
c.Assert(err, IsNil)
|
|
|
c.Assert(exist, Equals, true)
|
|
c.Assert(exist, Equals, true)
|
|
|
|
|
|
|
|
- // not exist
|
|
|
|
|
|
|
+ // Not exist
|
|
|
exist, err = s.bucket.IsObjectExist(objectName + "1111")
|
|
exist, err = s.bucket.IsObjectExist(objectName + "1111")
|
|
|
c.Assert(err, IsNil)
|
|
c.Assert(err, IsNil)
|
|
|
c.Assert(exist, Equals, false)
|
|
c.Assert(exist, Equals, false)
|
|
@@ -1130,11 +1130,11 @@ func (s *OssBucketSuite) TestDeleteObject(c *C) {
|
|
|
c.Assert(err, IsNil)
|
|
c.Assert(err, IsNil)
|
|
|
c.Assert(len(lor.Objects), Equals, 1)
|
|
c.Assert(len(lor.Objects), Equals, 1)
|
|
|
|
|
|
|
|
- // delete
|
|
|
|
|
|
|
+ // Delete
|
|
|
err = s.bucket.DeleteObject(objectName)
|
|
err = s.bucket.DeleteObject(objectName)
|
|
|
c.Assert(err, IsNil)
|
|
c.Assert(err, IsNil)
|
|
|
|
|
|
|
|
- // duplicate delete
|
|
|
|
|
|
|
+ // Duplicate delete
|
|
|
err = s.bucket.DeleteObject(objectName)
|
|
err = s.bucket.DeleteObject(objectName)
|
|
|
c.Assert(err, IsNil)
|
|
c.Assert(err, IsNil)
|
|
|
|
|
|
|
@@ -1147,7 +1147,7 @@ func (s *OssBucketSuite) TestDeleteObject(c *C) {
|
|
|
func (s *OssBucketSuite) TestDeleteObjects(c *C) {
|
|
func (s *OssBucketSuite) TestDeleteObjects(c *C) {
|
|
|
objectName := objectNamePrefix + "tdos"
|
|
objectName := objectNamePrefix + "tdos"
|
|
|
|
|
|
|
|
- // delete object
|
|
|
|
|
|
|
+ // Delete objects
|
|
|
err := s.bucket.PutObject(objectName, strings.NewReader(""))
|
|
err := s.bucket.PutObject(objectName, strings.NewReader(""))
|
|
|
c.Assert(err, IsNil)
|
|
c.Assert(err, IsNil)
|
|
|
|
|
|
|
@@ -1159,7 +1159,7 @@ func (s *OssBucketSuite) TestDeleteObjects(c *C) {
|
|
|
c.Assert(err, IsNil)
|
|
c.Assert(err, IsNil)
|
|
|
c.Assert(len(lor.Objects), Equals, 0)
|
|
c.Assert(len(lor.Objects), Equals, 0)
|
|
|
|
|
|
|
|
- // delete objects
|
|
|
|
|
|
|
+ // Delete objects
|
|
|
err = s.bucket.PutObject(objectName+"1", strings.NewReader(""))
|
|
err = s.bucket.PutObject(objectName+"1", strings.NewReader(""))
|
|
|
c.Assert(err, IsNil)
|
|
c.Assert(err, IsNil)
|
|
|
|
|
|
|
@@ -1174,7 +1174,7 @@ func (s *OssBucketSuite) TestDeleteObjects(c *C) {
|
|
|
c.Assert(err, IsNil)
|
|
c.Assert(err, IsNil)
|
|
|
c.Assert(len(lor.Objects), Equals, 0)
|
|
c.Assert(len(lor.Objects), Equals, 0)
|
|
|
|
|
|
|
|
- // delete 0
|
|
|
|
|
|
|
+ // Delete 0
|
|
|
_, err = s.bucket.DeleteObjects([]string{})
|
|
_, err = s.bucket.DeleteObjects([]string{})
|
|
|
c.Assert(err, NotNil)
|
|
c.Assert(err, NotNil)
|
|
|
|
|
|
|
@@ -1236,7 +1236,7 @@ func (s *OssBucketSuite) TestDeleteObjects(c *C) {
|
|
|
c.Assert(err, IsNil)
|
|
c.Assert(err, IsNil)
|
|
|
c.Assert(len(res.DeletedObjects), Equals, 0)
|
|
c.Assert(len(res.DeletedObjects), Equals, 0)
|
|
|
|
|
|
|
|
- // 特殊字符
|
|
|
|
|
|
|
+ // Special characters
|
|
|
key := "A ' < > \" & ~ ` ! @ # $ % ^ & * ( ) [] {} - _ + = / | \\ ? . , : ; A"
|
|
key := "A ' < > \" & ~ ` ! @ # $ % ^ & * ( ) [] {} - _ + = / | \\ ? . , : ; A"
|
|
|
err = s.bucket.PutObject(key, strings.NewReader("value"))
|
|
err = s.bucket.PutObject(key, strings.NewReader("value"))
|
|
|
c.Assert(err, IsNil)
|
|
c.Assert(err, IsNil)
|
|
@@ -1248,7 +1248,7 @@ func (s *OssBucketSuite) TestDeleteObjects(c *C) {
|
|
|
c.Assert(err, IsNil)
|
|
c.Assert(err, IsNil)
|
|
|
c.Assert(len(ress.Objects), Equals, 0)
|
|
c.Assert(len(ress.Objects), Equals, 0)
|
|
|
|
|
|
|
|
- // not exist
|
|
|
|
|
|
|
+ // Not exist
|
|
|
_, err = s.bucket.DeleteObjects([]string{"NotExistObject"})
|
|
_, err = s.bucket.DeleteObjects([]string{"NotExistObject"})
|
|
|
c.Assert(err, IsNil)
|
|
c.Assert(err, IsNil)
|
|
|
}
|
|
}
|
|
@@ -1275,18 +1275,18 @@ func (s *OssBucketSuite) TestSetObjectMeta(c *C) {
|
|
|
c.Assert(err, IsNil)
|
|
c.Assert(err, IsNil)
|
|
|
c.Assert(acl.ACL, Equals, "default")
|
|
c.Assert(acl.ACL, Equals, "default")
|
|
|
|
|
|
|
|
- // invalid option
|
|
|
|
|
|
|
+ // Invalid option
|
|
|
err = s.bucket.SetObjectMeta(objectName, AcceptEncoding("url"))
|
|
err = s.bucket.SetObjectMeta(objectName, AcceptEncoding("url"))
|
|
|
c.Assert(err, IsNil)
|
|
c.Assert(err, IsNil)
|
|
|
|
|
|
|
|
- // invalid option value
|
|
|
|
|
|
|
+ // Invalid option value
|
|
|
err = s.bucket.SetObjectMeta(objectName, ServerSideEncryption("invalid"))
|
|
err = s.bucket.SetObjectMeta(objectName, ServerSideEncryption("invalid"))
|
|
|
c.Assert(err, NotNil)
|
|
c.Assert(err, NotNil)
|
|
|
|
|
|
|
|
err = s.bucket.DeleteObject(objectName)
|
|
err = s.bucket.DeleteObject(objectName)
|
|
|
c.Assert(err, IsNil)
|
|
c.Assert(err, IsNil)
|
|
|
|
|
|
|
|
- // no exist
|
|
|
|
|
|
|
+ // Not exist
|
|
|
err = s.bucket.SetObjectMeta(objectName, Expires(futureDate))
|
|
err = s.bucket.SetObjectMeta(objectName, Expires(futureDate))
|
|
|
c.Assert(err, NotNil)
|
|
c.Assert(err, NotNil)
|
|
|
}
|
|
}
|
|
@@ -1362,12 +1362,12 @@ func (s *OssBucketSuite) TestSetAndGetObjectAcl(c *C) {
|
|
|
err := s.bucket.PutObject(objectName, strings.NewReader(""))
|
|
err := s.bucket.PutObject(objectName, strings.NewReader(""))
|
|
|
c.Assert(err, IsNil)
|
|
c.Assert(err, IsNil)
|
|
|
|
|
|
|
|
- // default
|
|
|
|
|
|
|
+ // Default
|
|
|
acl, err := s.bucket.GetObjectACL(objectName)
|
|
acl, err := s.bucket.GetObjectACL(objectName)
|
|
|
c.Assert(err, IsNil)
|
|
c.Assert(err, IsNil)
|
|
|
c.Assert(acl.ACL, Equals, "default")
|
|
c.Assert(acl.ACL, Equals, "default")
|
|
|
|
|
|
|
|
- // set ACL_PUBLIC_RW
|
|
|
|
|
|
|
+ // Set ACL_PUBLIC_RW
|
|
|
err = s.bucket.SetObjectACL(objectName, ACLPublicReadWrite)
|
|
err = s.bucket.SetObjectACL(objectName, ACLPublicReadWrite)
|
|
|
c.Assert(err, IsNil)
|
|
c.Assert(err, IsNil)
|
|
|
|
|
|
|
@@ -1375,7 +1375,7 @@ func (s *OssBucketSuite) TestSetAndGetObjectAcl(c *C) {
|
|
|
c.Assert(err, IsNil)
|
|
c.Assert(err, IsNil)
|
|
|
c.Assert(acl.ACL, Equals, string(ACLPublicReadWrite))
|
|
c.Assert(acl.ACL, Equals, string(ACLPublicReadWrite))
|
|
|
|
|
|
|
|
- // set ACL_PRIVATE
|
|
|
|
|
|
|
+ // Set ACL_PRIVATE
|
|
|
err = s.bucket.SetObjectACL(objectName, ACLPrivate)
|
|
err = s.bucket.SetObjectACL(objectName, ACLPrivate)
|
|
|
c.Assert(err, IsNil)
|
|
c.Assert(err, IsNil)
|
|
|
|
|
|
|
@@ -1383,7 +1383,7 @@ func (s *OssBucketSuite) TestSetAndGetObjectAcl(c *C) {
|
|
|
c.Assert(err, IsNil)
|
|
c.Assert(err, IsNil)
|
|
|
c.Assert(acl.ACL, Equals, string(ACLPrivate))
|
|
c.Assert(acl.ACL, Equals, string(ACLPrivate))
|
|
|
|
|
|
|
|
- // set ACL_PUBLIC_R
|
|
|
|
|
|
|
+ // Set ACL_PUBLIC_R
|
|
|
err = s.bucket.SetObjectACL(objectName, ACLPublicRead)
|
|
err = s.bucket.SetObjectACL(objectName, ACLPublicRead)
|
|
|
c.Assert(err, IsNil)
|
|
c.Assert(err, IsNil)
|
|
|
|
|
|
|
@@ -1399,7 +1399,7 @@ func (s *OssBucketSuite) TestSetAndGetObjectAcl(c *C) {
|
|
|
func (s *OssBucketSuite) TestSetAndGetObjectAclNegative(c *C) {
|
|
func (s *OssBucketSuite) TestSetAndGetObjectAclNegative(c *C) {
|
|
|
objectName := objectNamePrefix + "tsgban"
|
|
objectName := objectNamePrefix + "tsgban"
|
|
|
|
|
|
|
|
- // object not exist
|
|
|
|
|
|
|
+ // Object not exist
|
|
|
err := s.bucket.SetObjectACL(objectName, ACLPublicRead)
|
|
err := s.bucket.SetObjectACL(objectName, ACLPublicRead)
|
|
|
c.Assert(err, NotNil)
|
|
c.Assert(err, NotNil)
|
|
|
}
|
|
}
|
|
@@ -1413,12 +1413,12 @@ func (s *OssBucketSuite) TestCopyObject(c *C) {
|
|
|
ACL(ACLPublicRead), Meta("my", "myprop"))
|
|
ACL(ACLPublicRead), Meta("my", "myprop"))
|
|
|
c.Assert(err, IsNil)
|
|
c.Assert(err, IsNil)
|
|
|
|
|
|
|
|
- // copy
|
|
|
|
|
|
|
+ // Copy
|
|
|
var objectNameDest = objectName + "dest"
|
|
var objectNameDest = objectName + "dest"
|
|
|
_, err = s.bucket.CopyObject(objectName, objectNameDest)
|
|
_, err = s.bucket.CopyObject(objectName, objectNameDest)
|
|
|
c.Assert(err, IsNil)
|
|
c.Assert(err, IsNil)
|
|
|
|
|
|
|
|
- // check
|
|
|
|
|
|
|
+ // Check
|
|
|
lor, err := s.bucket.ListObjects(Prefix(objectName))
|
|
lor, err := s.bucket.ListObjects(Prefix(objectName))
|
|
|
c.Assert(err, IsNil)
|
|
c.Assert(err, IsNil)
|
|
|
testLogger.Println("objects:", lor.Objects)
|
|
testLogger.Println("objects:", lor.Objects)
|
|
@@ -1433,16 +1433,16 @@ func (s *OssBucketSuite) TestCopyObject(c *C) {
|
|
|
err = s.bucket.DeleteObject(objectNameDest)
|
|
err = s.bucket.DeleteObject(objectNameDest)
|
|
|
c.Assert(err, IsNil)
|
|
c.Assert(err, IsNil)
|
|
|
|
|
|
|
|
- // copy with constraints x-oss-copy-source-if-modified-since
|
|
|
|
|
|
|
+ // Copy with constraints x-oss-copy-source-if-modified-since
|
|
|
_, err = s.bucket.CopyObject(objectName, objectNameDest, CopySourceIfModifiedSince(futureDate))
|
|
_, err = s.bucket.CopyObject(objectName, objectNameDest, CopySourceIfModifiedSince(futureDate))
|
|
|
c.Assert(err, NotNil)
|
|
c.Assert(err, NotNil)
|
|
|
testLogger.Println("CopyObject:", err)
|
|
testLogger.Println("CopyObject:", err)
|
|
|
|
|
|
|
|
- // copy with constraints x-oss-copy-source-if-unmodified-since
|
|
|
|
|
|
|
+ // Copy with constraints x-oss-copy-source-if-unmodified-since
|
|
|
_, err = s.bucket.CopyObject(objectName, objectNameDest, CopySourceIfUnmodifiedSince(futureDate))
|
|
_, err = s.bucket.CopyObject(objectName, objectNameDest, CopySourceIfUnmodifiedSince(futureDate))
|
|
|
c.Assert(err, IsNil)
|
|
c.Assert(err, IsNil)
|
|
|
|
|
|
|
|
- // check
|
|
|
|
|
|
|
+ // Check
|
|
|
lor, err = s.bucket.ListObjects(Prefix(objectName))
|
|
lor, err = s.bucket.ListObjects(Prefix(objectName))
|
|
|
c.Assert(err, IsNil)
|
|
c.Assert(err, IsNil)
|
|
|
testLogger.Println("objects:", lor.Objects)
|
|
testLogger.Println("objects:", lor.Objects)
|
|
@@ -1457,7 +1457,7 @@ func (s *OssBucketSuite) TestCopyObject(c *C) {
|
|
|
err = s.bucket.DeleteObject(objectNameDest)
|
|
err = s.bucket.DeleteObject(objectNameDest)
|
|
|
c.Assert(err, IsNil)
|
|
c.Assert(err, IsNil)
|
|
|
|
|
|
|
|
- // copy with constraints x-oss-copy-source-if-match
|
|
|
|
|
|
|
+ // Copy with constraints x-oss-copy-source-if-match
|
|
|
meta, err := s.bucket.GetObjectDetailedMeta(objectName)
|
|
meta, err := s.bucket.GetObjectDetailedMeta(objectName)
|
|
|
c.Assert(err, IsNil)
|
|
c.Assert(err, IsNil)
|
|
|
testLogger.Println("GetObjectDetailedMeta:", meta)
|
|
testLogger.Println("GetObjectDetailedMeta:", meta)
|
|
@@ -1465,7 +1465,7 @@ func (s *OssBucketSuite) TestCopyObject(c *C) {
|
|
|
_, err = s.bucket.CopyObject(objectName, objectNameDest, CopySourceIfMatch(meta.Get("Etag")))
|
|
_, err = s.bucket.CopyObject(objectName, objectNameDest, CopySourceIfMatch(meta.Get("Etag")))
|
|
|
c.Assert(err, IsNil)
|
|
c.Assert(err, IsNil)
|
|
|
|
|
|
|
|
- // check
|
|
|
|
|
|
|
+ // Check
|
|
|
body, err = s.bucket.GetObject(objectName)
|
|
body, err = s.bucket.GetObject(objectName)
|
|
|
c.Assert(err, IsNil)
|
|
c.Assert(err, IsNil)
|
|
|
str, err = readBody(body)
|
|
str, err = readBody(body)
|
|
@@ -1475,16 +1475,16 @@ func (s *OssBucketSuite) TestCopyObject(c *C) {
|
|
|
err = s.bucket.DeleteObject(objectNameDest)
|
|
err = s.bucket.DeleteObject(objectNameDest)
|
|
|
c.Assert(err, IsNil)
|
|
c.Assert(err, IsNil)
|
|
|
|
|
|
|
|
- // copy with constraints x-oss-copy-source-if-none-match
|
|
|
|
|
|
|
+ // Copy with constraints x-oss-copy-source-if-none-match
|
|
|
_, err = s.bucket.CopyObject(objectName, objectNameDest, CopySourceIfNoneMatch(meta.Get("Etag")))
|
|
_, err = s.bucket.CopyObject(objectName, objectNameDest, CopySourceIfNoneMatch(meta.Get("Etag")))
|
|
|
c.Assert(err, NotNil)
|
|
c.Assert(err, NotNil)
|
|
|
|
|
|
|
|
- // copy with constraints x-oss-metadata-directive
|
|
|
|
|
|
|
+ // Copy with constraints x-oss-metadata-directive
|
|
|
_, err = s.bucket.CopyObject(objectName, objectNameDest, Meta("my", "mydestprop"),
|
|
_, err = s.bucket.CopyObject(objectName, objectNameDest, Meta("my", "mydestprop"),
|
|
|
MetadataDirective(MetaCopy))
|
|
MetadataDirective(MetaCopy))
|
|
|
c.Assert(err, IsNil)
|
|
c.Assert(err, IsNil)
|
|
|
|
|
|
|
|
- // check
|
|
|
|
|
|
|
+ // Check
|
|
|
body, err = s.bucket.GetObject(objectName)
|
|
body, err = s.bucket.GetObject(objectName)
|
|
|
c.Assert(err, IsNil)
|
|
c.Assert(err, IsNil)
|
|
|
str, err = readBody(body)
|
|
str, err = readBody(body)
|
|
@@ -1502,7 +1502,7 @@ func (s *OssBucketSuite) TestCopyObject(c *C) {
|
|
|
err = s.bucket.DeleteObject(objectNameDest)
|
|
err = s.bucket.DeleteObject(objectNameDest)
|
|
|
c.Assert(err, IsNil)
|
|
c.Assert(err, IsNil)
|
|
|
|
|
|
|
|
- // copy with constraints x-oss-metadata-directive and self defined dest object meta
|
|
|
|
|
|
|
+ // Copy with constraints x-oss-metadata-directive and self defined dest object meta
|
|
|
options := []Option{
|
|
options := []Option{
|
|
|
ObjectACL(ACLPublicReadWrite),
|
|
ObjectACL(ACLPublicReadWrite),
|
|
|
Meta("my", "mydestprop"),
|
|
Meta("my", "mydestprop"),
|
|
@@ -1511,7 +1511,7 @@ func (s *OssBucketSuite) TestCopyObject(c *C) {
|
|
|
_, err = s.bucket.CopyObject(objectName, objectNameDest, options...)
|
|
_, err = s.bucket.CopyObject(objectName, objectNameDest, options...)
|
|
|
c.Assert(err, IsNil)
|
|
c.Assert(err, IsNil)
|
|
|
|
|
|
|
|
- // check
|
|
|
|
|
|
|
+ // Check
|
|
|
body, err = s.bucket.GetObject(objectName)
|
|
body, err = s.bucket.GetObject(objectName)
|
|
|
c.Assert(err, IsNil)
|
|
c.Assert(err, IsNil)
|
|
|
str, err = readBody(body)
|
|
str, err = readBody(body)
|
|
@@ -1548,11 +1548,11 @@ func (s *OssBucketSuite) TestCopyObjectToOrFrom(c *C) {
|
|
|
err = s.bucket.PutObject(objectName, strings.NewReader(objectValue))
|
|
err = s.bucket.PutObject(objectName, strings.NewReader(objectValue))
|
|
|
c.Assert(err, IsNil)
|
|
c.Assert(err, IsNil)
|
|
|
|
|
|
|
|
- // copy from
|
|
|
|
|
|
|
+ // Copy from
|
|
|
_, err = destBuck.CopyObjectFrom(bucketName, objectName, objectNameDest)
|
|
_, err = destBuck.CopyObjectFrom(bucketName, objectName, objectNameDest)
|
|
|
c.Assert(err, IsNil)
|
|
c.Assert(err, IsNil)
|
|
|
|
|
|
|
|
- // check
|
|
|
|
|
|
|
+ // Check
|
|
|
body, err := destBuck.GetObject(objectNameDest)
|
|
body, err := destBuck.GetObject(objectNameDest)
|
|
|
c.Assert(err, IsNil)
|
|
c.Assert(err, IsNil)
|
|
|
str, err := readBody(body)
|
|
str, err := readBody(body)
|
|
@@ -1562,18 +1562,18 @@ func (s *OssBucketSuite) TestCopyObjectToOrFrom(c *C) {
|
|
|
err = s.bucket.DeleteObject(objectName)
|
|
err = s.bucket.DeleteObject(objectName)
|
|
|
c.Assert(err, IsNil)
|
|
c.Assert(err, IsNil)
|
|
|
|
|
|
|
|
- // copy to
|
|
|
|
|
|
|
+ // Copy to
|
|
|
_, err = destBuck.CopyObjectTo(bucketName, objectName, objectNameDest)
|
|
_, err = destBuck.CopyObjectTo(bucketName, objectName, objectNameDest)
|
|
|
c.Assert(err, IsNil)
|
|
c.Assert(err, IsNil)
|
|
|
|
|
|
|
|
- // check
|
|
|
|
|
|
|
+ // Check
|
|
|
body, err = s.bucket.GetObject(objectName)
|
|
body, err = s.bucket.GetObject(objectName)
|
|
|
c.Assert(err, IsNil)
|
|
c.Assert(err, IsNil)
|
|
|
str, err = readBody(body)
|
|
str, err = readBody(body)
|
|
|
c.Assert(err, IsNil)
|
|
c.Assert(err, IsNil)
|
|
|
c.Assert(str, Equals, objectValue)
|
|
c.Assert(str, Equals, objectValue)
|
|
|
|
|
|
|
|
- // clean
|
|
|
|
|
|
|
+ // Clean
|
|
|
err = destBuck.DeleteObject(objectNameDest)
|
|
err = destBuck.DeleteObject(objectNameDest)
|
|
|
c.Assert(err, IsNil)
|
|
c.Assert(err, IsNil)
|
|
|
|
|
|
|
@@ -1590,11 +1590,11 @@ func (s *OssBucketSuite) TestCopyObjectToOrFromNegative(c *C) {
|
|
|
destBucket := bucketName + "-destn"
|
|
destBucket := bucketName + "-destn"
|
|
|
objectNameDest := objectName + "destn"
|
|
objectNameDest := objectName + "destn"
|
|
|
|
|
|
|
|
- // object no exist
|
|
|
|
|
|
|
+ // Object not exist
|
|
|
_, err := s.bucket.CopyObjectTo(bucketName, objectName, objectNameDest)
|
|
_, err := s.bucket.CopyObjectTo(bucketName, objectName, objectNameDest)
|
|
|
c.Assert(err, NotNil)
|
|
c.Assert(err, NotNil)
|
|
|
|
|
|
|
|
- // bucket no exist
|
|
|
|
|
|
|
+ // Bucket not exist
|
|
|
_, err = s.bucket.CopyObjectFrom(destBucket, objectNameDest, objectName)
|
|
_, err = s.bucket.CopyObjectFrom(destBucket, objectNameDest, objectName)
|
|
|
c.Assert(err, NotNil)
|
|
c.Assert(err, NotNil)
|
|
|
}
|
|
}
|
|
@@ -1613,7 +1613,7 @@ func (s *OssBucketSuite) TestAppendObject(c *C) {
|
|
|
err = createFileAndWrite(localFile+"2", val[midPos:])
|
|
err = createFileAndWrite(localFile+"2", val[midPos:])
|
|
|
c.Assert(err, IsNil)
|
|
c.Assert(err, IsNil)
|
|
|
|
|
|
|
|
- // string append
|
|
|
|
|
|
|
+ // String append
|
|
|
nextPos, err = s.bucket.AppendObject(objectName, strings.NewReader("昨夜雨疏风骤,浓睡不消残酒。试问卷帘人,"), nextPos)
|
|
nextPos, err = s.bucket.AppendObject(objectName, strings.NewReader("昨夜雨疏风骤,浓睡不消残酒。试问卷帘人,"), nextPos)
|
|
|
c.Assert(err, IsNil)
|
|
c.Assert(err, IsNil)
|
|
|
nextPos, err = s.bucket.AppendObject(objectName, strings.NewReader("却道海棠依旧。知否?知否?应是绿肥红瘦。"), nextPos)
|
|
nextPos, err = s.bucket.AppendObject(objectName, strings.NewReader("却道海棠依旧。知否?知否?应是绿肥红瘦。"), nextPos)
|
|
@@ -1628,7 +1628,7 @@ func (s *OssBucketSuite) TestAppendObject(c *C) {
|
|
|
err = s.bucket.DeleteObject(objectName)
|
|
err = s.bucket.DeleteObject(objectName)
|
|
|
c.Assert(err, IsNil)
|
|
c.Assert(err, IsNil)
|
|
|
|
|
|
|
|
- // byte append
|
|
|
|
|
|
|
+ // Byte append
|
|
|
nextPos = 0
|
|
nextPos = 0
|
|
|
nextPos, err = s.bucket.AppendObject(objectName, bytes.NewReader(val[0:midPos]), nextPos)
|
|
nextPos, err = s.bucket.AppendObject(objectName, bytes.NewReader(val[0:midPos]), nextPos)
|
|
|
c.Assert(err, IsNil)
|
|
c.Assert(err, IsNil)
|
|
@@ -1644,7 +1644,7 @@ func (s *OssBucketSuite) TestAppendObject(c *C) {
|
|
|
err = s.bucket.DeleteObject(objectName)
|
|
err = s.bucket.DeleteObject(objectName)
|
|
|
c.Assert(err, IsNil)
|
|
c.Assert(err, IsNil)
|
|
|
|
|
|
|
|
- // file append
|
|
|
|
|
|
|
+ // File append
|
|
|
options := []Option{
|
|
options := []Option{
|
|
|
ObjectACL(ACLPublicReadWrite),
|
|
ObjectACL(ACLPublicReadWrite),
|
|
|
Meta("my", "myprop"),
|
|
Meta("my", "myprop"),
|
|
@@ -1670,7 +1670,7 @@ func (s *OssBucketSuite) TestAppendObject(c *C) {
|
|
|
testLogger.Println("GetObjectACL:", acl)
|
|
testLogger.Println("GetObjectACL:", acl)
|
|
|
c.Assert(acl.ACL, Equals, string(ACLPublicReadWrite))
|
|
c.Assert(acl.ACL, Equals, string(ACLPublicReadWrite))
|
|
|
|
|
|
|
|
- // second append
|
|
|
|
|
|
|
+ // Second append
|
|
|
options = []Option{
|
|
options = []Option{
|
|
|
ObjectACL(ACLPublicRead),
|
|
ObjectACL(ACLPublicRead),
|
|
|
Meta("my", "myproptwo"),
|
|
Meta("my", "myproptwo"),
|
|
@@ -1805,14 +1805,14 @@ func (s *OssBucketSuite) TestSTSToken(c *C) {
|
|
|
c.Assert(err, IsNil)
|
|
c.Assert(err, IsNil)
|
|
|
testLogger.Println("Objects:", lor.Objects)
|
|
testLogger.Println("Objects:", lor.Objects)
|
|
|
|
|
|
|
|
- // Put with url
|
|
|
|
|
|
|
+ // Put with URL
|
|
|
signedURL, err := bucket.SignURL(objectName, HTTPPut, 3600)
|
|
signedURL, err := bucket.SignURL(objectName, HTTPPut, 3600)
|
|
|
c.Assert(err, IsNil)
|
|
c.Assert(err, IsNil)
|
|
|
|
|
|
|
|
err = bucket.PutObjectWithURL(signedURL, strings.NewReader(objectValue))
|
|
err = bucket.PutObjectWithURL(signedURL, strings.NewReader(objectValue))
|
|
|
c.Assert(err, IsNil)
|
|
c.Assert(err, IsNil)
|
|
|
|
|
|
|
|
- // Get with url
|
|
|
|
|
|
|
+ // Get with URL
|
|
|
signedURL, err = bucket.SignURL(objectName, HTTPGet, 3600)
|
|
signedURL, err = bucket.SignURL(objectName, HTTPGet, 3600)
|
|
|
c.Assert(err, IsNil)
|
|
c.Assert(err, IsNil)
|
|
|
|
|
|
|
@@ -1977,7 +1977,7 @@ func (s *OssBucketSuite) TestSymlink(c *C) {
|
|
|
err = s.bucket.DeleteObject(targetObjectName)
|
|
err = s.bucket.DeleteObject(targetObjectName)
|
|
|
c.Assert(err, IsNil)
|
|
c.Assert(err, IsNil)
|
|
|
|
|
|
|
|
- // put symlink again
|
|
|
|
|
|
|
+ // Put symlink again
|
|
|
objectName = objectNamePrefix + "symlink"
|
|
objectName = objectNamePrefix + "symlink"
|
|
|
targetObjectName = objectNamePrefix + "symlink-target"
|
|
targetObjectName = objectNamePrefix + "symlink-target"
|
|
|
|
|
|
|
@@ -2008,12 +2008,12 @@ func (s *OssBucketSuite) TestSymlink(c *C) {
|
|
|
func (s *OssBucketSuite) TestRestoreObject(c *C) {
|
|
func (s *OssBucketSuite) TestRestoreObject(c *C) {
|
|
|
objectName := objectNamePrefix + "restore"
|
|
objectName := objectNamePrefix + "restore"
|
|
|
|
|
|
|
|
- // List Object
|
|
|
|
|
|
|
+ // List objects
|
|
|
lor, err := s.archiveBucket.ListObjects()
|
|
lor, err := s.archiveBucket.ListObjects()
|
|
|
c.Assert(err, IsNil)
|
|
c.Assert(err, IsNil)
|
|
|
left := len(lor.Objects)
|
|
left := len(lor.Objects)
|
|
|
|
|
|
|
|
- // Put three object
|
|
|
|
|
|
|
+ // Put object
|
|
|
err = s.archiveBucket.PutObject(objectName, strings.NewReader(""))
|
|
err = s.archiveBucket.PutObject(objectName, strings.NewReader(""))
|
|
|
c.Assert(err, IsNil)
|
|
c.Assert(err, IsNil)
|
|
|
|
|
|
|
@@ -2026,29 +2026,29 @@ func (s *OssBucketSuite) TestRestoreObject(c *C) {
|
|
|
c.Assert(object.Type, Equals, "Normal")
|
|
c.Assert(object.Type, Equals, "Normal")
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- // Head Object
|
|
|
|
|
|
|
+ // Head object
|
|
|
meta, err := s.archiveBucket.GetObjectDetailedMeta(objectName)
|
|
meta, err := s.archiveBucket.GetObjectDetailedMeta(objectName)
|
|
|
c.Assert(err, IsNil)
|
|
c.Assert(err, IsNil)
|
|
|
_, ok := meta["X-Oss-Restore"]
|
|
_, ok := meta["X-Oss-Restore"]
|
|
|
c.Assert(ok, Equals, false)
|
|
c.Assert(ok, Equals, false)
|
|
|
c.Assert(meta.Get("X-Oss-Storage-Class"), Equals, "Archive")
|
|
c.Assert(meta.Get("X-Oss-Storage-Class"), Equals, "Archive")
|
|
|
|
|
|
|
|
- // Error Restore
|
|
|
|
|
|
|
+ // Error restore object
|
|
|
err = s.archiveBucket.RestoreObject("notexistobject")
|
|
err = s.archiveBucket.RestoreObject("notexistobject")
|
|
|
c.Assert(err, NotNil)
|
|
c.Assert(err, NotNil)
|
|
|
|
|
|
|
|
- // Restore Object
|
|
|
|
|
|
|
+ // Restore object
|
|
|
err = s.archiveBucket.RestoreObject(objectName)
|
|
err = s.archiveBucket.RestoreObject(objectName)
|
|
|
c.Assert(err, IsNil)
|
|
c.Assert(err, IsNil)
|
|
|
|
|
|
|
|
- // Head Object
|
|
|
|
|
|
|
+ // Head object
|
|
|
meta, err = s.archiveBucket.GetObjectDetailedMeta(objectName)
|
|
meta, err = s.archiveBucket.GetObjectDetailedMeta(objectName)
|
|
|
c.Assert(err, IsNil)
|
|
c.Assert(err, IsNil)
|
|
|
c.Assert(meta.Get("X-Oss-Restore"), Equals, "ongoing-request=\"true\"")
|
|
c.Assert(meta.Get("X-Oss-Restore"), Equals, "ongoing-request=\"true\"")
|
|
|
c.Assert(meta.Get("X-Oss-Storage-Class"), Equals, "Archive")
|
|
c.Assert(meta.Get("X-Oss-Storage-Class"), Equals, "Archive")
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-// private
|
|
|
|
|
|
|
+// Private
|
|
|
func createFileAndWrite(fileName string, data []byte) error {
|
|
func createFileAndWrite(fileName string, data []byte) error {
|
|
|
os.Remove(fileName)
|
|
os.Remove(fileName)
|
|
|
|
|
|
|
@@ -2070,7 +2070,7 @@ func createFileAndWrite(fileName string, data []byte) error {
|
|
|
return nil
|
|
return nil
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-// compare the content between fileL and fileR
|
|
|
|
|
|
|
+// Compare the content between fileL and fileR
|
|
|
func compareFiles(fileL string, fileR string) (bool, error) {
|
|
func compareFiles(fileL string, fileR string) (bool, error) {
|
|
|
finL, err := os.Open(fileL)
|
|
finL, err := os.Open(fileL)
|
|
|
if err != nil {
|
|
if err != nil {
|
|
@@ -2124,7 +2124,7 @@ func compareFiles(fileL string, fileR string) (bool, error) {
|
|
|
return true, nil
|
|
return true, nil
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-// compare the content of file and data
|
|
|
|
|
|
|
+// Compare the content of file and data
|
|
|
func compareFileData(file string, data []byte) (bool, error) {
|
|
func compareFileData(file string, data []byte) (bool, error) {
|
|
|
fin, err := os.Open(file)
|
|
fin, err := os.Open(file)
|
|
|
if err != nil {
|
|
if err != nil {
|