|
|
@@ -72,7 +72,7 @@ func (s *OssCopySuite) TearDownTest(c *C) {
|
|
|
}
|
|
|
|
|
|
// TestCopyRoutineWithoutRecovery 多线程无断点恢复的复制
|
|
|
-func (s *OssCopySuite) _TestCopyRoutineWithoutRecovery(c *C) {
|
|
|
+func (s *OssCopySuite) TestCopyRoutineWithoutRecovery(c *C) {
|
|
|
srcObjectName := objectNamePrefix + "tcrwr"
|
|
|
destObjectName := srcObjectName + "-copy"
|
|
|
fileName := "../sample/BingWallpaper-2015-11-07.jpg"
|
|
|
@@ -84,7 +84,7 @@ func (s *OssCopySuite) _TestCopyRoutineWithoutRecovery(c *C) {
|
|
|
os.Remove(newFile)
|
|
|
|
|
|
// 不指定Routines,默认单线程
|
|
|
- err = s.bucket.CopyFile(bucketName, srcObjectName, bucketName, destObjectName, 100*1024)
|
|
|
+ err = s.bucket.CopyFile(bucketName, srcObjectName, destObjectName, 100*1024)
|
|
|
c.Assert(err, IsNil)
|
|
|
|
|
|
err = s.bucket.GetObjectToFile(destObjectName, newFile)
|
|
|
@@ -99,7 +99,7 @@ func (s *OssCopySuite) _TestCopyRoutineWithoutRecovery(c *C) {
|
|
|
os.Remove(newFile)
|
|
|
|
|
|
// 指定线程数1
|
|
|
- err = s.bucket.CopyFile(bucketName, srcObjectName, bucketName, destObjectName, 100*1024, Routines(1))
|
|
|
+ err = s.bucket.CopyFile(bucketName, srcObjectName, destObjectName, 100*1024, Routines(1))
|
|
|
c.Assert(err, IsNil)
|
|
|
|
|
|
err = s.bucket.GetObjectToFile(destObjectName, newFile)
|
|
|
@@ -114,7 +114,7 @@ func (s *OssCopySuite) _TestCopyRoutineWithoutRecovery(c *C) {
|
|
|
os.Remove(newFile)
|
|
|
|
|
|
// 指定线程数3,小于分片数5
|
|
|
- err = s.bucket.CopyFile(bucketName, srcObjectName, bucketName, destObjectName, 100*1024, Routines(3))
|
|
|
+ err = s.bucket.CopyFile(bucketName, srcObjectName, destObjectName, 100*1024, Routines(3))
|
|
|
c.Assert(err, IsNil)
|
|
|
|
|
|
err = s.bucket.GetObjectToFile(destObjectName, newFile)
|
|
|
@@ -129,7 +129,7 @@ func (s *OssCopySuite) _TestCopyRoutineWithoutRecovery(c *C) {
|
|
|
os.Remove(newFile)
|
|
|
|
|
|
// 指定线程数5,等于分片数
|
|
|
- err = s.bucket.CopyFile(bucketName, srcObjectName, bucketName, destObjectName, 100*1024, Routines(5))
|
|
|
+ err = s.bucket.CopyFile(bucketName, srcObjectName, destObjectName, 100*1024, Routines(5))
|
|
|
c.Assert(err, IsNil)
|
|
|
|
|
|
err = s.bucket.GetObjectToFile(destObjectName, newFile)
|
|
|
@@ -144,7 +144,7 @@ func (s *OssCopySuite) _TestCopyRoutineWithoutRecovery(c *C) {
|
|
|
os.Remove(newFile)
|
|
|
|
|
|
// 指定线程数10,大于分片数5
|
|
|
- err = s.bucket.CopyFile(bucketName, srcObjectName, bucketName, destObjectName, 100*1024, Routines(10))
|
|
|
+ err = s.bucket.CopyFile(bucketName, srcObjectName, destObjectName, 100*1024, Routines(10))
|
|
|
c.Assert(err, IsNil)
|
|
|
|
|
|
err = s.bucket.GetObjectToFile(destObjectName, newFile)
|
|
|
@@ -159,7 +159,7 @@ func (s *OssCopySuite) _TestCopyRoutineWithoutRecovery(c *C) {
|
|
|
os.Remove(newFile)
|
|
|
|
|
|
// 线程值无效自动变成1
|
|
|
- err = s.bucket.CopyFile(bucketName, srcObjectName, bucketName, destObjectName, 100*1024, Routines(-1))
|
|
|
+ err = s.bucket.CopyFile(bucketName, srcObjectName, destObjectName, 100*1024, Routines(-1))
|
|
|
c.Assert(err, IsNil)
|
|
|
|
|
|
err = s.bucket.GetObjectToFile(destObjectName, newFile)
|
|
|
@@ -174,7 +174,7 @@ func (s *OssCopySuite) _TestCopyRoutineWithoutRecovery(c *C) {
|
|
|
os.Remove(newFile)
|
|
|
|
|
|
// option
|
|
|
- err = s.bucket.CopyFile(bucketName, srcObjectName, bucketName, destObjectName, 100*1024, Routines(3), Meta("myprop", "mypropval"))
|
|
|
+ err = s.bucket.CopyFile(bucketName, srcObjectName, destObjectName, 100*1024, Routines(3), Meta("myprop", "mypropval"))
|
|
|
|
|
|
meta, err := s.bucket.GetObjectDetailedMeta(destObjectName)
|
|
|
c.Assert(err, IsNil)
|
|
|
@@ -206,7 +206,7 @@ func CopyErrorHooker(part copyPart) error {
|
|
|
|
|
|
|
|
|
// TestCopyRoutineWithoutRecoveryNegative 多线程无断点恢复的复制
|
|
|
-func (s *OssCopySuite) _TestCopyRoutineWithoutRecoveryNegative(c *C) {
|
|
|
+func (s *OssCopySuite) TestCopyRoutineWithoutRecoveryNegative(c *C) {
|
|
|
srcObjectName := objectNamePrefix + "tcrwrn"
|
|
|
destObjectName := srcObjectName + "-copy"
|
|
|
fileName := "../sample/BingWallpaper-2015-11-07.jpg"
|
|
|
@@ -217,28 +217,24 @@ func (s *OssCopySuite) _TestCopyRoutineWithoutRecoveryNegative(c *C) {
|
|
|
|
|
|
copyPartHooker = CopyErrorHooker
|
|
|
// worker线程错误
|
|
|
- err = s.bucket.CopyFile(bucketName, srcObjectName, bucketName, destObjectName, 100*1024, Routines(2))
|
|
|
+ err = s.bucket.CopyFile(bucketName, srcObjectName, destObjectName, 100*1024, Routines(2))
|
|
|
|
|
|
c.Assert(err, NotNil)
|
|
|
c.Assert(err.Error(), Equals, "ErrorHooker")
|
|
|
copyPartHooker = defaultCopyPartHook
|
|
|
|
|
|
- // 目标Bucket不存在
|
|
|
- err = s.bucket.CopyFile(bucketName, srcObjectName, "NotExist", destObjectName, 100*1024, Routines(2))
|
|
|
- c.Assert(err, NotNil)
|
|
|
-
|
|
|
// 源Bucket不存在
|
|
|
- err = s.bucket.CopyFile("NotExist", srcObjectName, bucketName, destObjectName, 100*1024, Routines(2))
|
|
|
+ err = s.bucket.CopyFile("NotExist", srcObjectName, destObjectName, 100*1024, Routines(2))
|
|
|
c.Assert(err, NotNil)
|
|
|
|
|
|
// 源Object不存在
|
|
|
- err = s.bucket.CopyFile(bucketName, "NotExist", bucketName, destObjectName, 100*1024, Routines(2))
|
|
|
+ err = s.bucket.CopyFile(bucketName, "NotExist", destObjectName, 100*1024, Routines(2))
|
|
|
|
|
|
// 指定的分片大小无效
|
|
|
- err = s.bucket.CopyFile(bucketName, srcObjectName, bucketName, destObjectName, 1024, Routines(2))
|
|
|
+ err = s.bucket.CopyFile(bucketName, srcObjectName, destObjectName, 1024, Routines(2))
|
|
|
c.Assert(err, NotNil)
|
|
|
|
|
|
- err = s.bucket.CopyFile(bucketName, srcObjectName, bucketName, destObjectName, 1024*1024*1024*100, Routines(2))
|
|
|
+ err = s.bucket.CopyFile(bucketName, srcObjectName, destObjectName, 1024*1024*1024*100, Routines(2))
|
|
|
c.Assert(err, NotNil)
|
|
|
|
|
|
// 删除源文件
|
|
|
@@ -247,7 +243,7 @@ func (s *OssCopySuite) _TestCopyRoutineWithoutRecoveryNegative(c *C) {
|
|
|
}
|
|
|
|
|
|
// TestCopyRoutineWithRecovery 多线程且有断点恢复的复制
|
|
|
-func (s *OssCopySuite) _TestCopyRoutineWithRecovery(c *C) {
|
|
|
+func (s *OssCopySuite) TestCopyRoutineWithRecovery(c *C) {
|
|
|
srcObjectName := objectNamePrefix + "tcrtr"
|
|
|
destObjectName := srcObjectName + "-copy"
|
|
|
fileName := "../sample/BingWallpaper-2015-11-07.jpg"
|
|
|
@@ -261,7 +257,7 @@ func (s *OssCopySuite) _TestCopyRoutineWithRecovery(c *C) {
|
|
|
// Routines默认值,CP开启默认路径是destObjectName+.cp
|
|
|
// 第一次上传,上传4片
|
|
|
copyPartHooker = CopyErrorHooker
|
|
|
- err = s.bucket.CopyFile(bucketName, srcObjectName, bucketName, destObjectName, 1024*100, Checkpoint(true, ""))
|
|
|
+ err = s.bucket.CopyFile(bucketName, srcObjectName, destObjectName, 1024*100, Checkpoint(true, ""))
|
|
|
c.Assert(err, NotNil)
|
|
|
c.Assert(err.Error(), Equals, "ErrorHooker")
|
|
|
copyPartHooker = defaultCopyPartHook
|
|
|
@@ -285,7 +281,7 @@ func (s *OssCopySuite) _TestCopyRoutineWithRecovery(c *C) {
|
|
|
c.Assert(ccp.PartStat[4], Equals, false)
|
|
|
|
|
|
// 第二次上传,完成剩余的一片
|
|
|
- err = s.bucket.CopyFile(bucketName, srcObjectName, bucketName, destObjectName, 1024*100, Checkpoint(true, ""))
|
|
|
+ err = s.bucket.CopyFile(bucketName, srcObjectName, destObjectName, 1024*100, Checkpoint(true, ""))
|
|
|
c.Assert(err, IsNil)
|
|
|
|
|
|
err = s.bucket.GetObjectToFile(destObjectName, newFile)
|
|
|
@@ -304,7 +300,7 @@ func (s *OssCopySuite) _TestCopyRoutineWithRecovery(c *C) {
|
|
|
|
|
|
// Routines指定,CP指定
|
|
|
copyPartHooker = CopyErrorHooker
|
|
|
- err = s.bucket.CopyFile(bucketName, srcObjectName, bucketName, destObjectName, 1024*100, Routines(2), Checkpoint(true, srcObjectName+".cp"))
|
|
|
+ err = s.bucket.CopyFile(bucketName, srcObjectName, destObjectName, 1024*100, Routines(2), Checkpoint(true, srcObjectName+".cp"))
|
|
|
c.Assert(err, NotNil)
|
|
|
c.Assert(err.Error(), Equals, "ErrorHooker")
|
|
|
copyPartHooker = defaultCopyPartHook
|
|
|
@@ -328,7 +324,7 @@ func (s *OssCopySuite) _TestCopyRoutineWithRecovery(c *C) {
|
|
|
c.Assert(ccp.PartStat[4], Equals, false)
|
|
|
|
|
|
// 第二次上传,完成剩余的一片
|
|
|
- err = s.bucket.CopyFile(bucketName, srcObjectName, bucketName, destObjectName, 1024*100, Routines(2), Checkpoint(true, srcObjectName+".cp"))
|
|
|
+ err = s.bucket.CopyFile(bucketName, srcObjectName, destObjectName, 1024*100, Routines(2), Checkpoint(true, srcObjectName+".cp"))
|
|
|
c.Assert(err, IsNil)
|
|
|
|
|
|
err = s.bucket.GetObjectToFile(destObjectName, newFile)
|
|
|
@@ -346,7 +342,7 @@ func (s *OssCopySuite) _TestCopyRoutineWithRecovery(c *C) {
|
|
|
c.Assert(err, NotNil)
|
|
|
|
|
|
// 一次完成上传,中间没有错误
|
|
|
- err = s.bucket.CopyFile(bucketName, srcObjectName, bucketName, destObjectName, 1024*100, Routines(3), Checkpoint(true, ""))
|
|
|
+ err = s.bucket.CopyFile(bucketName, srcObjectName, destObjectName, 1024*100, Routines(3), Checkpoint(true, ""))
|
|
|
c.Assert(err, IsNil)
|
|
|
|
|
|
err = s.bucket.GetObjectToFile(destObjectName, newFile)
|
|
|
@@ -361,7 +357,7 @@ func (s *OssCopySuite) _TestCopyRoutineWithRecovery(c *C) {
|
|
|
os.Remove(newFile)
|
|
|
|
|
|
// 用多协程下载,中间没有错误
|
|
|
- err = s.bucket.CopyFile(bucketName, srcObjectName, bucketName, destObjectName, 1024*100, Routines(10), Checkpoint(true, ""))
|
|
|
+ err = s.bucket.CopyFile(bucketName, srcObjectName, destObjectName, 1024*100, Routines(10), Checkpoint(true, ""))
|
|
|
c.Assert(err, IsNil)
|
|
|
|
|
|
err = s.bucket.GetObjectToFile(destObjectName, newFile)
|
|
|
@@ -376,7 +372,7 @@ func (s *OssCopySuite) _TestCopyRoutineWithRecovery(c *C) {
|
|
|
os.Remove(newFile)
|
|
|
|
|
|
// option
|
|
|
- err = s.bucket.CopyFile(bucketName, srcObjectName, bucketName, destObjectName, 1024*100, Routines(5), Checkpoint(true, ""), Meta("myprop", "mypropval"))
|
|
|
+ err = s.bucket.CopyFile(bucketName, srcObjectName, destObjectName, 1024*100, Routines(5), Checkpoint(true, ""), Meta("myprop", "mypropval"))
|
|
|
c.Assert(err, IsNil)
|
|
|
|
|
|
meta, err := s.bucket.GetObjectDetailedMeta(destObjectName)
|
|
|
@@ -400,28 +396,24 @@ func (s *OssCopySuite) _TestCopyRoutineWithRecovery(c *C) {
|
|
|
}
|
|
|
|
|
|
// TestCopyRoutineWithRecoveryNegative 多线程无断点恢复的复制
|
|
|
-func (s *OssCopySuite) _TestCopyRoutineWithRecoveryNegative(c *C) {
|
|
|
+func (s *OssCopySuite) TestCopyRoutineWithRecoveryNegative(c *C) {
|
|
|
srcObjectName := objectNamePrefix + "tcrwrn"
|
|
|
destObjectName := srcObjectName + "-copy"
|
|
|
|
|
|
- // 目标Bucket不存在
|
|
|
- err := s.bucket.CopyFile(bucketName, srcObjectName, "NotExist", destObjectName, 100*1024, Checkpoint(true, ""))
|
|
|
- c.Assert(err, NotNil)
|
|
|
-
|
|
|
// 源Bucket不存在
|
|
|
- err = s.bucket.CopyFile("NotExist", srcObjectName, bucketName, destObjectName, 100*1024, Checkpoint(true, ""))
|
|
|
+ err := s.bucket.CopyFile("NotExist", srcObjectName, destObjectName, 100*1024, Checkpoint(true, ""))
|
|
|
c.Assert(err, NotNil)
|
|
|
c.Assert(err, NotNil)
|
|
|
|
|
|
// 源Object不存在
|
|
|
- err = s.bucket.CopyFile(bucketName, "NotExist", bucketName, destObjectName, 100*1024, Routines(2), Checkpoint(true, ""))
|
|
|
+ err = s.bucket.CopyFile(bucketName, "NotExist", destObjectName, 100*1024, Routines(2), Checkpoint(true, ""))
|
|
|
c.Assert(err, NotNil)
|
|
|
|
|
|
// 指定的分片大小无效
|
|
|
- err = s.bucket.CopyFile(bucketName, srcObjectName, bucketName, destObjectName, 1024, Checkpoint(true, ""))
|
|
|
+ err = s.bucket.CopyFile(bucketName, srcObjectName, destObjectName, 1024, Checkpoint(true, ""))
|
|
|
c.Assert(err, NotNil)
|
|
|
|
|
|
- err = s.bucket.CopyFile(bucketName, srcObjectName, bucketName, destObjectName, 1024*1024*1024*100, Routines(2), Checkpoint(true, ""))
|
|
|
+ err = s.bucket.CopyFile(bucketName, srcObjectName, destObjectName, 1024*1024*1024*100, Routines(2), Checkpoint(true, ""))
|
|
|
c.Assert(err, NotNil)
|
|
|
}
|
|
|
|
|
|
@@ -446,7 +438,7 @@ func (s *OssCopySuite) TestCopyFileCrossBucket(c *C) {
|
|
|
os.Remove(newFile)
|
|
|
|
|
|
// 复制文件
|
|
|
- err = destBucket.CopyFile(bucketName, srcObjectName, destBucketName, destObjectName, 1024*100, Routines(5), Checkpoint(true, ""))
|
|
|
+ err = destBucket.CopyFile(bucketName, srcObjectName, destObjectName, 1024*100, Routines(5), Checkpoint(true, ""))
|
|
|
c.Assert(err, IsNil)
|
|
|
|
|
|
err = destBucket.GetObjectToFile(destObjectName, newFile)
|
|
|
@@ -461,7 +453,7 @@ func (s *OssCopySuite) TestCopyFileCrossBucket(c *C) {
|
|
|
os.Remove(newFile)
|
|
|
|
|
|
// 带option的复制
|
|
|
- err = destBucket.CopyFile(bucketName, srcObjectName, destBucketName, destObjectName, 1024*100, Routines(10), Checkpoint(true, "copy.cp"), Meta("myprop", "mypropval"))
|
|
|
+ err = destBucket.CopyFile(bucketName, srcObjectName, destObjectName, 1024*100, Routines(10), Checkpoint(true, "copy.cp"), Meta("myprop", "mypropval"))
|
|
|
c.Assert(err, IsNil)
|
|
|
|
|
|
err = destBucket.GetObjectToFile(destObjectName, newFile)
|