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 "" }