-
Notifications
You must be signed in to change notification settings - Fork 27
/
util.go
113 lines (104 loc) · 3.39 KB
/
util.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
package oss
import (
"bytes"
"sort"
)
const (
headerPrefixOss = "x-oss-"
)
var (
signingKeyMap = map[string]bool{
"acl": true,
"uploads": true,
"location": true,
"cors": true,
"logging": true,
"website": true,
"referer": true,
"lifecycle": true,
"delete": true,
"append": true,
"tagging": true,
"objectMeta": true,
"uploadId": true,
"partNumber": true,
"security-token": true,
"position": true,
"img": true,
"style": true,
"styleName": true,
"replication": true,
"replicationProgress": true,
"replicationLocation": true,
"cname": true,
"bucketInfo": true,
"comp": true,
"qos": true,
"live": true,
"status": true,
"vod": true,
"startTime": true,
"endTime": true,
"symlink": true,
"x-oss-process": true,
"response-content-type": true,
"x-oss-traffic-limit": true,
"response-content-language": true,
"response-expires": true,
"response-cache-control": true,
"response-content-disposition": true,
"response-content-encoding": true,
"udf": true,
"udfName": true,
"udfImage": true,
"udfId": true,
"udfImageDesc": true,
"udfApplication": true,
"udfApplicationLog": true,
"restore": true,
"callback": true,
"callback-var": true,
"qosInfo": true,
"policy": true,
"stat": true,
"encryption": true,
"versions": true,
"versioning": true,
"versionId": true,
"requestPayment": true,
"x-oss-request-payer": true,
"sequential": true,
"inventory": true,
"inventoryId": true,
"continuation-token": true,
"asyncFetch": true,
"worm": true,
"wormId": true,
"wormExtend": true,
"withHashContext": true,
"x-oss-enable-md5": true,
"x-oss-enable-sha1": true,
"x-oss-enable-sha256": true,
"x-oss-hash-ctx": true,
"x-oss-md5-ctx": true,
"transferAcceleration": true,
"regionList": true,
}
)
type Pair struct {
First string
Last string
}
type Pairs []*Pair
func (h Pairs) Len() int {
return len(h)
}
func (h Pairs) Less(i, j int) bool {
return bytes.Compare([]byte(h[i].First), []byte(h[j].First)) < 0
}
func (h Pairs) Swap(i, j int) {
h[i], h[j] = h[j], h[i]
}
func sortPairs(pairs []*Pair) {
sort.Sort(Pairs(pairs))
}