Skip to content

Commit b07c6ae

Browse files
committed
refactor: extract hasHttpScheme method for URL scheme checks in Client
Signed-off-by: tbxark <[email protected]>
1 parent ed86b75 commit b07c6ae

File tree

2 files changed

+22
-5
lines changed

2 files changed

+22
-5
lines changed

storage/qiniu/qiniu.go

+6-2
Original file line numberDiff line numberDiff line change
@@ -47,11 +47,15 @@ func NewClient(config *Config) *Client {
4747
}
4848
}
4949

50+
func (n *Client) hasHttpScheme(uri string) bool {
51+
return strings.HasPrefix(uri, "http://") || strings.HasPrefix(uri, "https://")
52+
}
53+
5054
func (n *Client) GenerateURL(key string) string {
5155
if key == "" {
5256
return ""
5357
}
54-
if strings.HasPrefix(key, "http://") || strings.HasPrefix(key, "https://") {
58+
if n.hasHttpScheme(key) {
5559
return key
5660
}
5761
buf := strings.Builder{}
@@ -86,7 +90,7 @@ func (n *Client) ExtractKeyFromURLWithMode(uri string, strict bool) (string, err
8690
return "", nil
8791
}
8892
// 不是 http 或者 https 开头的直接返回
89-
if !(strings.HasPrefix(uri, "http://") || strings.HasPrefix(uri, "https://")) {
93+
if !n.hasHttpScheme(uri) {
9094
return strings.TrimPrefix(uri, "/"), nil
9195
}
9296
// 解析URL

storage/s3/s3.go

+16-3
Original file line numberDiff line numberDiff line change
@@ -44,14 +44,27 @@ func NewClient(config *Config) (*Client, error) {
4444
}, nil
4545
}
4646

47+
func (s *Client) hasHttpScheme(uri string) bool {
48+
return strings.HasPrefix(uri, "http://") || strings.HasPrefix(uri, "https://")
49+
}
50+
4751
func (s *Client) GenerateURL(key string) string {
4852
if key == "" {
4953
return ""
5054
}
51-
if strings.HasPrefix(key, "http://") || strings.HasPrefix(key, "https://") {
55+
if s.hasHttpScheme(key) {
5256
return key
5357
}
54-
return fmt.Sprintf("%s/%s/%s", s.config.Endpoint, s.config.Bucket, strings.TrimPrefix(key, "/"))
58+
uri := fmt.Sprintf("%s/%s/%s", s.config.Endpoint, s.config.Bucket, strings.TrimPrefix(key, "/"))
59+
if s.hasHttpScheme(uri) {
60+
return uri
61+
}
62+
if s.config.UseSSL {
63+
uri = "https://" + uri
64+
} else {
65+
uri = "http://" + uri
66+
}
67+
return uri
5568
}
5669

5770
func (s *Client) GenerateURLs(keys []string) []string {
@@ -76,7 +89,7 @@ func (s *Client) ExtractKeyFromURLWithMode(uri string, strict bool) (string, err
7689
if uri == "" {
7790
return "", nil
7891
}
79-
if !(strings.HasPrefix(uri, "http://") || strings.HasPrefix(uri, "https://")) {
92+
if !s.hasHttpScheme(uri) {
8093
return strings.TrimPrefix(uri, "/"), nil
8194
}
8295
u, err := url.Parse(uri)

0 commit comments

Comments
 (0)