浏览代码

only encode object as other cases

hangzws 7 年之前
父节点
当前提交
37c4b63dec
共有 3 个文件被更改,包括 4 次插入6 次删除
  1. 2 1
      oss/multipart.go
  2. 1 2
      oss/option.go
  3. 1 3
      oss/option_test.go

+ 2 - 1
oss/multipart.go

@@ -5,6 +5,7 @@ import (
 	"encoding/xml"
 	"io"
 	"net/http"
+	"net/url"
 	"os"
 	"sort"
 	"strconv"
@@ -160,7 +161,7 @@ func (bucket Bucket) UploadPartCopy(imur InitiateMultipartUploadResult, srcBucke
 	var out UploadPartCopyResult
 	var part UploadPart
 
-	opts := []Option{CopySource(srcBucketName, srcObjectKey),
+	opts := []Option{CopySource(srcBucketName, url.QueryEscape(srcObjectKey)),
 		CopySourceRange(startPosition, partSize)}
 	opts = append(opts, options...)
 	params := map[string]interface{}{}

+ 1 - 2
oss/option.go

@@ -3,7 +3,6 @@ package oss
 import (
 	"fmt"
 	"net/http"
-	"net/url"
 	"strconv"
 	"strings"
 	"time"
@@ -118,7 +117,7 @@ func IfNoneMatch(value string) Option {
 
 // CopySource is an option to set X-Oss-Copy-Source header
 func CopySource(sourceBucket, sourceObject string) Option {
-	return setHeader(HTTPHeaderOssCopySource, "/"+url.QueryEscape(sourceBucket+"/"+sourceObject))
+	return setHeader(HTTPHeaderOssCopySource, "/"+sourceBucket+"/"+sourceObject)
 }
 
 // CopySourceRange is an option to set X-Oss-Copy-Source header

+ 1 - 3
oss/option_test.go

@@ -2,7 +2,6 @@ package oss
 
 import (
 	"net/http"
-	"net/url"
 
 	. "gopkg.in/check.v1"
 )
@@ -91,8 +90,7 @@ var headerTestcases = []optionTestCase{
 	{
 		option: CopySource("bucket_name", "object_name"),
 		key:    "X-Oss-Copy-Source",
-		//value:  "/bucket_name/object_name",
-		value: "/" + url.QueryEscape("bucket_name/object_name"),
+		value:  "/bucket_name/object_name",
 	},
 	{
 		option: CopySourceIfModifiedSince(pastDate),