file_info.go 1.6 KB
package domain

import (
	"gitlab.fjmaimaimai.com/allied-creation/character-library-metadata-bastion/pkg/constant"
	"strings"
)

// FileInfo 文件信息
type FileInfo struct {
	// 名称
	Name string `json:"name"`
	// 文件地址
	Url string `json:"url"`
	// 文件大小
	FileSize int `json:"fileSize"`
	// 后缀扩展
	Ext string `json:"ext"`
	// 记录数
	RowCount int `json:"rowCount"`
	// 表结构ID
	TableId int `json:"tableId"`
	// 行号
	HeaderRow int `json:"headerRow"`
}

// ConvertFileUrlToInternal 传递内网地址
// byte-bank.oss-cn-hangzhou 当oss与字库同属于这个节点下面,使用内网进行传输
func ConvertFileUrlToInternal(fileUrl string) string {
	if constant.SERVICE_ENV != "prod" {
		return fileUrl
	}
	var bucketRegion = "https://byte-bank.oss-cn-hangzhou"
	var bucketInternalRegion = "https://byte-bank.oss-cn-hangzhou-internal"
	if strings.HasPrefix(fileUrl, bucketInternalRegion) {
		return fileUrl
	}
	if strings.HasPrefix(fileUrl, bucketRegion) {
		return strings.Replace(fileUrl, bucketRegion, bucketInternalRegion, 1)
	}
	return fileUrl
}

// ConvertInternalFileUrlToPublic 转内网地址为外网地址
func ConvertInternalFileUrlToPublic(fileUrl string) string {
	//var bucketRegion = "https://byte-bank.oss-cn-hangzhou"
	//var bucketInternalRegion = "https://byte-bank.oss-cn-hangzhou-internal"
	//if strings.HasPrefix(fileUrl, bucketInternalRegion) {
	//	return strings.Replace(fileUrl, bucketInternalRegion, bucketRegion, 1)
	//}
	var internal = "-internal"
	if strings.Contains(fileUrl, internal) {
		return strings.Replace(fileUrl, internal, "", 1)
	}
	return fileUrl
}