131 lines
4.1 KiB
Go
131 lines
4.1 KiB
Go
package proxy
|
|
|
|
import (
|
|
"fmt"
|
|
"strings"
|
|
)
|
|
|
|
const (
|
|
// 视频桶地址
|
|
BucketVideoAddressV1 = "http://ts.bbaazz.me"
|
|
BucketVideoAddressV2 = "http://tong3yuants.bbaazz.me"
|
|
// 图片桶地址
|
|
BucketImageAddressV1 = "http://img.bbaazz.me"
|
|
BucketImageAddressV2 = "http://tong3yuanimg.bbaazz.me"
|
|
|
|
// 上传路径
|
|
ImageUploadPathV1 = "/file/upload"
|
|
ImageUploadPathV2 = "/file/upload" // "/file/web/media/uploadImg"
|
|
VideoBodyPathV1 = "/file/web/proxy/videoBody"
|
|
VideoBodyPathV2 = "/file/web/proxy/videoBodyV2"
|
|
VideoOkPathV1 = "/file/web/proxy/videoOk"
|
|
VideoOkPathV2 = "/file/web/proxy/videoOkv2"
|
|
)
|
|
|
|
func DomainAddressRepair(domain string, defaultBucketAddress ...string) string {
|
|
if domain == "" {
|
|
if len(defaultBucketAddress) > 0 && defaultBucketAddress[0] != "" {
|
|
domain = defaultBucketAddress[0]
|
|
} else {
|
|
domain = BucketVideoAddressV2
|
|
}
|
|
}
|
|
return domain
|
|
}
|
|
|
|
func ImageUploadAddressRepair(domain string, defaultBucketAddress ...string) string {
|
|
domain = DomainAddressRepair(domain, defaultBucketAddress...)
|
|
if !strings.Contains(domain, ImageUploadPathV1) && !strings.Contains(domain, ImageUploadPathV2) {
|
|
if strings.HasPrefix(domain, BucketImageAddressV1) {
|
|
return domain + ImageUploadPathV1
|
|
} else if strings.HasPrefix(domain, BucketImageAddressV2) {
|
|
return domain + ImageUploadPathV2
|
|
}
|
|
return domain + ImageUploadPathV2
|
|
}
|
|
return domain
|
|
}
|
|
|
|
func VideoBodyAddressRepair(domain string, defaultBucketAddress ...string) string {
|
|
domain = DomainAddressRepair(domain, defaultBucketAddress...)
|
|
if strings.HasPrefix(domain, BucketVideoAddressV1) {
|
|
if !strings.Contains(domain, VideoBodyPathV1) {
|
|
return domain + VideoBodyPathV1
|
|
}
|
|
return domain
|
|
} else if strings.HasPrefix(domain, BucketVideoAddressV2) {
|
|
if !strings.Contains(domain, VideoBodyPathV2) {
|
|
return domain + VideoBodyPathV2
|
|
}
|
|
return domain
|
|
} else { // 未知存储桶,默认v2
|
|
if !strings.Contains(domain, VideoBodyPathV2) {
|
|
return domain + VideoBodyPathV2
|
|
}
|
|
return domain
|
|
}
|
|
}
|
|
|
|
func VideoOkAddressRepair(domain string, defaultBucketAddress ...string) string {
|
|
domain = DomainAddressRepair(domain, defaultBucketAddress...)
|
|
if strings.HasPrefix(domain, BucketVideoAddressV1) {
|
|
if !strings.Contains(domain, VideoOkPathV1) {
|
|
return domain + VideoOkPathV1
|
|
}
|
|
return domain
|
|
} else if strings.HasPrefix(domain, BucketVideoAddressV2) {
|
|
if !strings.Contains(domain, VideoOkPathV2) {
|
|
return domain + VideoOkPathV2
|
|
}
|
|
return domain
|
|
} else { // 未知存储桶,默认v2
|
|
if !strings.Contains(domain, VideoOkPathV2) {
|
|
return domain + VideoOkPathV2
|
|
}
|
|
return domain
|
|
}
|
|
}
|
|
|
|
func GetExistsUrlPathBucketAddress(path string) string {
|
|
if strings.HasPrefix(path, "v1/") {
|
|
return BucketVideoAddressV1
|
|
} else if strings.HasPrefix(path, "v2/") {
|
|
return BucketVideoAddressV2
|
|
} else if strings.HasPrefix(path, "v3/") {
|
|
return BucketVideoAddressV2
|
|
} else {
|
|
return BucketVideoAddressV1 // 欲漫涩、微博、快看禁漫 默认用桶2,其他的app,默认用桶1
|
|
}
|
|
}
|
|
|
|
func AppendV2PrefixToUrlPath(name string) string {
|
|
if name != "" && !strings.HasPrefix(name, "v2/") && !strings.HasPrefix(name, "v1/") && !strings.HasPrefix(name, "v3/") &&
|
|
!strings.HasPrefix(name, "/v2") && !strings.HasPrefix(name, "/v1") && !strings.HasPrefix(name, "/v3") {
|
|
name = fmt.Sprintf("v2/%s", name)
|
|
}
|
|
return name
|
|
}
|
|
|
|
func AppendV1PrefixToUrlPath(name string) string {
|
|
if name != "" && !strings.HasPrefix(name, "v2/") && !strings.HasPrefix(name, "v1/") && !strings.HasPrefix(name, "v3/") &&
|
|
!strings.HasPrefix(name, "/v2") && !strings.HasPrefix(name, "/v1") && !strings.HasPrefix(name, "/v3") {
|
|
name = fmt.Sprintf("v1/%s", name)
|
|
}
|
|
return name
|
|
}
|
|
|
|
func AppendsMediaS3Version(name string) string {
|
|
if strings.Contains(name, "bktadminup") ||
|
|
strings.Contains(name, "bktappupdata") ||
|
|
strings.Contains(name, "k12") ||
|
|
strings.Contains(name, "bktappup") {
|
|
return ""
|
|
}
|
|
// 默认使用V1
|
|
if name != "" && !strings.HasPrefix(name, "v2/") && !strings.HasPrefix(name, "v1/") && !strings.HasPrefix(name, "v3/") &&
|
|
!strings.HasPrefix(name, "/v2") && !strings.HasPrefix(name, "/v1") && !strings.HasPrefix(name, "/v3") {
|
|
return "/v2"
|
|
}
|
|
return ""
|
|
}
|