fix Context issue
Signed-off-by: Shawn Chen <chen8132@gmail.com>
This commit is contained in:
parent
ae91d1f429
commit
3390f32aec
6 changed files with 259 additions and 24 deletions
14
vendor/github.com/denverdino/aliyungo/oss/client.go
generated
vendored
14
vendor/github.com/denverdino/aliyungo/oss/client.go
generated
vendored
|
@ -851,6 +851,17 @@ func (b *Bucket) SignedURLWithArgs(path string, expires time.Time, params url.Va
|
|||
return b.SignedURLWithMethod("GET", path, expires, params, headers)
|
||||
}
|
||||
|
||||
func (b *Bucket) SignedURLWithMethodForAssumeRole(method, path string, expires time.Time, params url.Values, headers http.Header) string {
|
||||
var uv = url.Values{}
|
||||
if params != nil {
|
||||
uv = params
|
||||
}
|
||||
if len(b.Client.SecurityToken) != 0 {
|
||||
uv.Set("security-token", b.Client.SecurityToken)
|
||||
}
|
||||
return b.SignedURLWithMethod(method, path, expires, params, headers)
|
||||
}
|
||||
|
||||
// SignedURLWithMethod returns a signed URL that allows anyone holding the URL
|
||||
// to either retrieve the object at path or make a HEAD request against it. The signature is valid until expires.
|
||||
func (b *Bucket) SignedURLWithMethod(method, path string, expires time.Time, params url.Values, headers http.Header) string {
|
||||
|
@ -1039,7 +1050,8 @@ func partiallyEscapedPath(path string) string {
|
|||
func (client *Client) prepare(req *request) error {
|
||||
// Copy so they can be mutated without affecting on retries.
|
||||
headers := copyHeader(req.headers)
|
||||
if len(client.SecurityToken) != 0 {
|
||||
// security-token should be in either Params or Header, cannot be in both
|
||||
if len(req.params.Get("security-token")) == 0 && len(client.SecurityToken) != 0 {
|
||||
headers.Set("x-oss-security-token", client.SecurityToken)
|
||||
}
|
||||
|
||||
|
|
48
vendor/github.com/denverdino/aliyungo/oss/signature.go
generated
vendored
48
vendor/github.com/denverdino/aliyungo/oss/signature.go
generated
vendored
|
@ -13,26 +13,44 @@ const HeaderOSSPrefix = "x-oss-"
|
|||
|
||||
var ossParamsToSign = map[string]bool{
|
||||
"acl": true,
|
||||
"append": true,
|
||||
"bucketInfo": true,
|
||||
"cname": true,
|
||||
"comp": true,
|
||||
"cors": true,
|
||||
"delete": true,
|
||||
"endTime": true,
|
||||
"img": true,
|
||||
"lifecycle": true,
|
||||
"live": true,
|
||||
"location": true,
|
||||
"logging": true,
|
||||
"notification": true,
|
||||
"objectMeta": true,
|
||||
"partNumber": true,
|
||||
"policy": true,
|
||||
"requestPayment": true,
|
||||
"torrent": true,
|
||||
"uploadId": true,
|
||||
"uploads": true,
|
||||
"versionId": true,
|
||||
"versioning": true,
|
||||
"versions": true,
|
||||
"response-content-type": true,
|
||||
"response-content-language": true,
|
||||
"response-expires": true,
|
||||
"position": true,
|
||||
"qos": true,
|
||||
"referer": true,
|
||||
"replication": true,
|
||||
"replicationLocation": true,
|
||||
"replicationProgress": true,
|
||||
"response-cache-control": true,
|
||||
"response-content-disposition": true,
|
||||
"response-content-encoding": true,
|
||||
"bucketInfo": true,
|
||||
"response-content-language": true,
|
||||
"response-content-type": true,
|
||||
"response-expires": true,
|
||||
"security-token": true,
|
||||
"startTime": true,
|
||||
"status": true,
|
||||
"style": true,
|
||||
"styleName": true,
|
||||
"symlink": true,
|
||||
"tagging": true,
|
||||
"uploadId": true,
|
||||
"uploads": true,
|
||||
"vod": true,
|
||||
"website": true,
|
||||
"x-oss-process": true,
|
||||
}
|
||||
|
||||
func (client *Client) signRequest(request *request) {
|
||||
|
@ -62,7 +80,7 @@ func (client *Client) signRequest(request *request) {
|
|||
}
|
||||
|
||||
if len(params) > 0 {
|
||||
resource = resource + "?" + util.Encode(params)
|
||||
resource = resource + "?" + util.EncodeWithoutEscape(params)
|
||||
}
|
||||
|
||||
canonicalizedResource := resource
|
||||
|
@ -74,7 +92,7 @@ func (client *Client) signRequest(request *request) {
|
|||
//log.Println("stringToSign: ", stringToSign)
|
||||
signature := util.CreateSignature(stringToSign, client.AccessKeySecret)
|
||||
|
||||
if query.Get("OSSAccessKeyId") != "" {
|
||||
if urlSignature {
|
||||
query.Set("Signature", signature)
|
||||
} else {
|
||||
headers.Set("Authorization", "OSS "+client.AccessKeyId+":"+signature)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue