Skip to content

Commit

Permalink
fix https endpoint proxy bug
Browse files Browse the repository at this point in the history
  • Loading branch information
taowei.wtw committed Aug 5, 2019
1 parent a545cb0 commit 3ede1fd
Show file tree
Hide file tree
Showing 5 changed files with 61 additions and 8 deletions.
12 changes: 6 additions & 6 deletions oss/client.go
Original file line number Diff line number Diff line change
Expand Up @@ -175,9 +175,9 @@ func (client Client) IsBucketExist(bucketName string) (bool, error) {
//
// error it's nil if no error, otherwise it's an error object.
//
func (client Client) DeleteBucket(bucketName string) error {
func (client Client) DeleteBucket(bucketName string, options ...Option) error {
params := map[string]interface{}{}
resp, err := client.do("DELETE", bucketName, params, nil, nil)
resp, err := client.do("DELETE", bucketName, params, nil, nil, options...)
if err != nil {
return err
}
Expand Down Expand Up @@ -675,11 +675,11 @@ func (client Client) GetBucketCORS(bucketName string) (GetBucketCORSResult, erro
//
// error it's nil if no error, otherwise it's an error object.
//
func (client Client) GetBucketInfo(bucketName string) (GetBucketInfoResult, error) {
func (client Client) GetBucketInfo(bucketName string, options ...Option) (GetBucketInfoResult, error) {
var out GetBucketInfoResult
params := map[string]interface{}{}
params["bucketInfo"] = nil
resp, err := client.do("GET", bucketName, params, nil, nil)
resp, err := client.do("GET", bucketName, params, nil, nil, options...)
if err != nil {
return out, err
}
Expand Down Expand Up @@ -1286,8 +1286,8 @@ func SetCredentialsProvider(provider CredentialsProvider) ClientOption {
// Private
func (client Client) do(method, bucketName string, params map[string]interface{},
headers map[string]string, data io.Reader, options ...Option) (*Response, error) {
resp, err := client.Conn.Do(method, bucketName, "", params,
headers, data, 0, nil)

resp, err := client.Conn.Do(method, bucketName, "", params, headers, data, 0, nil)

// get response header
respHeader, _ := findOption(options, responseHeader, nil)
Expand Down
44 changes: 44 additions & 0 deletions oss/client_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -2009,6 +2009,50 @@ func (s *OssClientSuite) TestProxy(c *C) {
c.Assert(err, IsNil)
}

// TestProxy for https endpoint
func (s *OssClientSuite) TestHttpsEndpointProxy(c *C) {
bucketNameTest := bucketNamePrefix + randLowStr(6)
objectName := objectNamePrefix + randLowStr(6)
objectValue := randLowStr(100)

httpsEndPoint := ""
if strings.HasPrefix(endpoint, "http://") {
httpsEndPoint = strings.Replace(endpoint, "http://", "https://", 1)
} else if !strings.HasPrefix(endpoint, "https://") {
httpsEndPoint = "https://" + endpoint
} else {
httpsEndPoint = endpoint
}

client, err := New(httpsEndPoint, accessID, accessKey, AuthProxy(proxyHost, proxyUser, proxyPasswd))

// Create bucket
err = client.CreateBucket(bucketNameTest)
c.Assert(err, IsNil)

bucket, err := client.Bucket(bucketNameTest)

// Put object
err = bucket.PutObject(objectName, strings.NewReader(objectValue))
c.Assert(err, IsNil)

// Get object
_, err = bucket.GetObject(objectName)
c.Assert(err, IsNil)

// List objects
_, err = bucket.ListObjects()
c.Assert(err, IsNil)

// Delete object
err = bucket.DeleteObject(objectName)
c.Assert(err, IsNil)

// Delete bucket
err = client.DeleteBucket(bucketNameTest)
c.Assert(err, IsNil)
}

// Private
func (s *OssClientSuite) checkBucket(buckets []BucketProperties, bucket string) bool {
for _, v := range buckets {
Expand Down
9 changes: 9 additions & 0 deletions oss/conn.go
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,13 @@ func (conn *Conn) init(config *Config, urlMaker *urlMaker, client *http.Client)
if err != nil {
return err
}
if config.IsAuthProxy {
if config.ProxyPassword != "" {
proxyURL.User = url.UserPassword(config.ProxyUser, config.ProxyPassword)
} else {
proxyURL.User = url.User(config.ProxyUser)
}
}
transport.Proxy = http.ProxyURL(proxyURL)
}
client = &http.Client{Transport: transport}
Expand Down Expand Up @@ -135,6 +142,7 @@ func (conn Conn) DoURL(method HTTPMethod, signedURL string, headers map[string]s
// Transfer failed
event = newProgressEvent(TransferFailedEvent, tracker.completedBytes, req.ContentLength, 0)
publishProgress(listener, event)
conn.config.WriteLog(Debug, "[Resp:%p]http error:%s\n", req, err.Error())
return nil, err
}

Expand Down Expand Up @@ -267,6 +275,7 @@ func (conn Conn) doRequest(method string, uri *url.URL, canonicalizedResource st
// Transfer failed
event = newProgressEvent(TransferFailedEvent, tracker.completedBytes, req.ContentLength, 0)
publishProgress(listener, event)
conn.config.WriteLog(Debug, "[Resp:%p]http error:%s\n", req, err.Error())
return nil, err
}

Expand Down
2 changes: 1 addition & 1 deletion oss/const.go
Original file line number Diff line number Diff line change
Expand Up @@ -182,5 +182,5 @@ const (

NullVersion = "null"

Version = "v2.0.1" // Go SDK version
Version = "v2.0.2 alpha" // Go SDK version
)
2 changes: 1 addition & 1 deletion oss/multipart.go
Original file line number Diff line number Diff line change
Expand Up @@ -255,7 +255,7 @@ func (bucket Bucket) ListUploadedParts(imur InitiateMultipartUploadResult, optio
}

params["uploadId"] = imur.UploadID
resp, err := bucket.do("GET", imur.Key, params, nil, nil, nil)
resp, err := bucket.do("GET", imur.Key, params, options, nil, nil)
if err != nil {
return out, err
}
Expand Down

0 comments on commit 3ede1fd

Please sign in to comment.