Files
mstore/pkg/client/cliaux.go
T
2026-02-02 17:27:16 +02:00

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
}