71 lines
1.3 KiB
Go
71 lines
1.3 KiB
Go
package client
|
|
|
|
import (
|
|
"encoding/base64"
|
|
"net/url"
|
|
"path"
|
|
"strings"
|
|
)
|
|
|
|
const (
|
|
serviceAPI = "/v3/api/service/"
|
|
fileAPI = "/v3/api/file/"
|
|
filesAPI = "/v3/api/files/"
|
|
)
|
|
|
|
func encodeBasicAuth(username, password string) string {
|
|
auth := username + ":" + password
|
|
return "Basic " + base64.StdEncoding.EncodeToString([]byte(auth))
|
|
}
|
|
|
|
func convertServiceRefer(ref string) (string, error) {
|
|
var err error
|
|
var res string
|
|
if !strings.Contains(ref, "://") {
|
|
ref = "https://" + ref
|
|
}
|
|
url, err := url.Parse(ref)
|
|
if err != nil {
|
|
return res, err
|
|
}
|
|
url.Path = path.Clean(url.Path)
|
|
url.Path = path.Join(serviceAPI, url.Path)
|
|
url.User = nil
|
|
res = url.String()
|
|
return res, err
|
|
}
|
|
|
|
func convertFileRefer(ref string) (string, error) {
|
|
var err error
|
|
var res string
|
|
if !strings.Contains(ref, "://") {
|
|
ref = "https://" + ref
|
|
}
|
|
url, err := url.Parse(ref)
|
|
if err != nil {
|
|
return res, err
|
|
}
|
|
url.Path = path.Clean(url.Path)
|
|
url.Path = path.Join(fileAPI, url.Path)
|
|
url.User = nil
|
|
res = url.String()
|
|
return res, err
|
|
}
|
|
|
|
func convertFilesRefer(ref string) (string, error) {
|
|
var err error
|
|
var res string
|
|
if !strings.Contains(ref, "://") {
|
|
ref = "https://" + ref
|
|
}
|
|
url, err := url.Parse(ref)
|
|
if err != nil {
|
|
return res, err
|
|
}
|
|
url.Path = path.Clean(url.Path)
|
|
url.Path = path.Join(filesAPI, url.Path)
|
|
url.User = nil
|
|
res = url.String()
|
|
return res, err
|
|
}
|