Compare commits

...

9 Commits

Author SHA1 Message Date
c135849195 Merge branch 'feature-multicast-daiyb' 2025-08-13 09:18:53 +08:00
sxy
7488f76c08 Merge branch 'feat-sxy-import' 2025-08-13 09:17:03 +08:00
8aab8ff4e6 更新 pkg/service/upload/upload.go
增加日志
2025-08-12 06:03:27 +00:00
857b7712ae Merge branch 'jng' 2025-08-12 13:35:23 +08:00
adb956dacb update oss config 2025-08-12 11:59:31 +08:00
b063a38f76 Merge branch 'jng' 2025-08-11 16:41:50 +08:00
6c4578b8aa update oss config 2025-08-11 16:27:26 +08:00
25eed16be5 添加source 2025-08-07 11:59:25 +08:00
cdf4b77aa7 Update dubbogo.yaml 2025-07-07 15:28:30 +08:00
9 changed files with 105 additions and 47 deletions

View File

@ -14,12 +14,12 @@ BosBaseDir = "fonchain-main"
BosHttp = "https://" BosHttp = "https://"
BosDomain = "cdns.fontree.cn" BosDomain = "cdns.fontree.cn"
[oss] [oss]
AccessKeyId = "LTAI5tCx628rkZ65oi5F5nxu" AccessKeyId = "${OSS_AK}"
AccessKeySecret = "WjSLa9tWs8RTdUmhKu3HLXIMogdUbo" AccessKeySecret = "${OSS_SK}"
Endpoint = "cdn-test.cdn.szjixun.cn" Endpoint = "${OSS_ENDPOINTT}"
BucketName = "fontree-test2" BucketName = "${OSS_BUCKETNAME}"
BaseDir = "fonchain-main" BaseDir = "fontree-fiee-test"
CdnHost = "https://cdn-test.szjixun.cn" CdnHost = "${OSS_CDN}"
[redis] [redis]
RedisDB = "2" RedisDB = "2"
RedisAddr = "127.0.0.1:6379" RedisAddr = "127.0.0.1:6379"

View File

@ -15,12 +15,12 @@ BosBaseDir = "fiee"
BosHttp = "https://" BosHttp = "https://"
BosDomain = "cdns.fontree.cn" BosDomain = "cdns.fontree.cn"
[oss] [oss]
AccessKeyId = "LTAI5tLz1fSK53FQAEC9uNSb" AccessKeyId = "OSS_AK"
AccessKeySecret = "oGB9chrQzQzITXR2IGv37Ji5WxZh4j" AccessKeySecret = "OSS_SK"
Endpoint = "oss-cn-hangzhou.aliyuncs.com" Endpoint = "OSS_ENDPOINTT"
BucketName = "fontree-test" BucketName = "OSS_BUCKETNAME"
BaseDir = "fiee" BaseDir = "fontree-fiee-test"
CdnHost = "https://cdn-test.szjixun.cn" CdnHost = "OSS_CDN"
[redis] [redis]
RedisDB = "2" RedisDB = "2"

View File

@ -4,7 +4,7 @@ dubbo:
protocol: zookeeper protocol: zookeeper
timeout: 3s timeout: 3s
# address: 121.229.45.214:9004 # address: 121.229.45.214:9004
address: 172.16.100.93:2181 address: 127.0.0.1:2181
# address: 127.0.0.1:2181 # address: 127.0.0.1:2181
# address: 114.218.158.24:2181 # address: 114.218.158.24:2181
consumer: consumer:

View File

@ -26,12 +26,12 @@ TelNum = "18021272627"
Password = "Gy.123456" Password = "Gy.123456"
[oss] [oss]
AccessKeyId = "LTAI5tHfjSmWXHqfWgaL7Uo5" AccessKeyId = "OSS_AK"
AccessKeySecret = "kOPctFZ3DHsbdSSym1fLyDK39hkzPI" AccessKeySecret = "OSS_SK"
Endpoint = "oss-cn-hangzhou.aliyuncs.com" Endpoint = "OSS_ENDPOINTT"
BucketName = "erp-k8s-store" BucketName = "OSS_BUCKETNAME"
BaseDir = "fiee" BaseDir = "fontree-fiee"
CdnHost = "https://e-cdn.fontree.cn" CdnHost = "OSS_CDN"
[stripe] [stripe]
Webhookkey = "whsec_Mol32WD1KcKHUdYsSwap0LR03q2g9qNY" Webhookkey = "whsec_Mol32WD1KcKHUdYsSwap0LR03q2g9qNY"

View File

@ -15,20 +15,12 @@ BosBaseDir = "fiee"
BosHttp = "https://" BosHttp = "https://"
BosDomain = "cdns.fontree.cn" BosDomain = "cdns.fontree.cn"
[oss] [oss]
AccessKeyId = "LTAI5tLz1fSK53FQAEC9uNSb" AccessKeyId = "OSS_AK"
AccessKeySecret = "oGB9chrQzQzITXR2IGv37Ji5WxZh4j" AccessKeySecret = "OSS_SK"
Endpoint = "oss-cn-hangzhou.aliyuncs.com" Endpoint = "OSS_ENDPOINTT"
BucketName = "fontree-test" BucketName = "OSS_BUCKETNAME"
BaseDir = "fiee" BaseDir = "fontree-fiee-test"
CdnHost = "https://cdn-test.szjixun.cn" CdnHost = "OSS_CDN"
[oss]
AccessKeyId="LTAI5tLz1fSK53FQAEC9uNSb"
AccessKeysecret ="oGB9chrQzQzITXR2IGv37Ji5WxZh4j"
Endpoint = "oss-cn-hangzhou.aliyuncs.com"
BucketName = "fontree-test"
BaseDir = "fiee"
CdnHost = "https://cdn-test.szjixun.cn"
[redis] [redis]
RedisDB = "2" RedisDB = "2"

View File

@ -4,9 +4,12 @@ import (
"fmt" "fmt"
"fonchain-fiee/pkg/common" "fonchain-fiee/pkg/common"
"github.com/spf13/viper" "github.com/spf13/viper"
"go.uber.org/zap"
"gopkg.in/ini.v1" "gopkg.in/ini.v1"
"os" "os"
"reflect"
"strconv" "strconv"
"strings"
) )
var ( var (
@ -249,5 +252,63 @@ func Viper(iniConf string) (err error) {
panic("viper.Unmarshal failed" + err.Error()) panic("viper.Unmarshal failed" + err.Error())
return return
} }
traverseFields(reflect.ValueOf(*ConfigData), "", ConfigData)
zap.L().Info("ConfigData", zap.Any("ConfigData", ConfigData))
fmt.Printf("ConfigData--%+v", ConfigData)
return return
} }
func traverseFields(value reflect.Value, prefix string, configPtr interface{}) {
valueType := value.Type()
prefixEnv := "${"
suffixEnv := "}"
// 遍历结构体的字段
for i := 0; i < valueType.NumField(); i++ {
field := valueType.Field(i)
fieldValue := value.Field(i)
// 拼接字段名(带有前缀)
fieldName := prefix + field.Name
// 判断字段的类型
if fieldValue.Kind() == reflect.Struct {
// 递归遍历嵌套结构体字段
traverseFields(fieldValue, fieldName+".", configPtr)
} else {
// 获取字段的值
fieldValueStr := fmt.Sprintf("%v", fieldValue.Interface())
// 判断是不是需要通过环境变量获取
if len(fieldValueStr) > 3 && strings.HasPrefix(fieldValueStr, prefixEnv) && strings.HasSuffix(fieldValueStr, suffixEnv) {
end := len(fieldValueStr) - len(suffixEnv)
var hasDefault bool
if strings.Index(fieldValueStr, "|") > 0 {
hasDefault = true
end = strings.Index(fieldValueStr, "|")
}
envStr := fieldValueStr[len(prefixEnv):end]
getValue := os.Getenv(envStr)
if getValue == "" && hasDefault {
getValue = fieldValueStr[end+1 : len(fieldValueStr)-len(suffixEnv)]
}
setSubFieldValue(configPtr, fieldName, getValue)
}
}
}
}
func setSubFieldValue(configPtr interface{}, fieldPath string, newValue interface{}) {
value := reflect.ValueOf(configPtr).Elem()
fields := strings.Split(fieldPath, ".")
for _, field := range fields {
value = value.FieldByName(field)
if !value.IsValid() {
return // 字段不存在,直接返回
}
if value.Kind() == reflect.Ptr {
value = value.Elem() // 解引用指针类型的字段
}
}
// 检查字段是否可设置
if value.CanSet() {
// 根据字段类型,将新值转换为对应类型并设置字段的值
newValue := reflect.ValueOf(newValue).Convert(value.Type())
value.Set(newValue)
}
}

View File

@ -129,7 +129,7 @@ func MakeThumbnail(imagePath, savePath string) error {
} }
func (u *Upload) PutBos(filePath string, mediaType string, needRemove bool) (url string, err error) { func (u *Upload) PutBos(filePath string, mediaType string, needRemove bool) (url string, err error) {
BOSClient, err := objstorage.NewOSS(config.ConfigData.Oss.AccessKeyId, config.ConfigData.Oss.AccessKeySecret, config.ConfigData.Oss.Endpoint) BOSClient, err := objstorage.NewOSS(os.Getenv(config.ConfigData.Oss.AccessKeyId), os.Getenv(config.ConfigData.Oss.AccessKeySecret), os.Getenv(config.ConfigData.Oss.Endpoint))
if err != nil { if err != nil {
logger.Errorf("PutBos NewOOS err ", err) logger.Errorf("PutBos NewOOS err ", err)
err = errors.New(e.GetMsg(e.ErrorUploadBos)) err = errors.New(e.GetMsg(e.ErrorUploadBos))
@ -148,14 +148,14 @@ func (u *Upload) PutBos(filePath string, mediaType string, needRemove bool) (url
} }
filePath = strings.Replace(filePath, "./runtime", "", 1) filePath = strings.Replace(filePath, "./runtime", "", 1)
var objectName string = fmt.Sprintf("%s/%s%s", config.ConfigData.Oss.BaseDir, config.Env, filePath) var objectName string = fmt.Sprintf("%s/%s%s", config.ConfigData.Oss.BaseDir, config.Env, filePath)
_, err = BOSClient.PutObjectFromBytes(config.ConfigData.Oss.BucketName, objectName, fileBytes) _, err = BOSClient.PutObjectFromBytes(os.Getenv(config.ConfigData.Oss.BucketName), objectName, fileBytes)
if err != nil { if err != nil {
logger.Errorf("PutBos PutObject err %+v", err.Error()) logger.Errorf("PutBos PutObject err %+v", err.Error())
err = errors.New(e.GetMsg(e.ErrorUploadBos)) err = errors.New(e.GetMsg(e.ErrorUploadBos))
return return
} }
//url = fmt.Sprintf("%s%s%s/%s", config.BosHttp, config.BosBucketName, config.BosUrl, objectName) //url = fmt.Sprintf("%s%s%s/%s", config.BosHttp, config.BosBucketName, config.BosUrl, objectName)
url = fmt.Sprintf("%s/%s", config.ConfigData.Oss.CdnHost, objectName) url = fmt.Sprintf("%s/%s", os.Getenv(config.ConfigData.Oss.CdnHost), objectName)
return return
} }

View File

@ -11,9 +11,10 @@ import (
"fonchain-fiee/pkg/e" "fonchain-fiee/pkg/e"
modelCast "fonchain-fiee/pkg/model/cast" modelCast "fonchain-fiee/pkg/model/cast"
"fonchain-fiee/pkg/service" "fonchain-fiee/pkg/service"
"strconv"
"github.com/gin-gonic/gin" "github.com/gin-gonic/gin"
"go.uber.org/zap" "go.uber.org/zap"
"strconv"
) )
func UpdateWorkImage(ctx *gin.Context) { func UpdateWorkImage(ctx *gin.Context) {
@ -50,6 +51,7 @@ func UpdateWorkImage(ctx *gin.Context) {
return return
} }
newCtx := NewCtxWithUserInfo(ctx) newCtx := NewCtxWithUserInfo(ctx)
req.Source = 1
resp, err := service.CastProvider.UpdateWorkImage(newCtx, req) resp, err := service.CastProvider.UpdateWorkImage(newCtx, req)
if err != nil { if err != nil {
service.Error(ctx, err) service.Error(ctx, err)
@ -93,6 +95,7 @@ func UpdateWorkVideo(ctx *gin.Context) {
req.ArtistPhone = infoResp.TelNum req.ArtistPhone = infoResp.TelNum
req.ArtistPhoneAreaCode = infoResp.TelAreaCode req.ArtistPhoneAreaCode = infoResp.TelAreaCode
newCtx := NewCtxWithUserInfo(ctx) newCtx := NewCtxWithUserInfo(ctx)
req.Source = 1
resp, err := service.CastProvider.UpdateWorkVideo(newCtx, req) resp, err := service.CastProvider.UpdateWorkVideo(newCtx, req)
if err != nil { if err != nil {
service.Error(ctx, err) service.Error(ctx, err)
@ -235,7 +238,7 @@ func RePublish(ctx *gin.Context) {
return return
} }
//修改余量我还需要调用吗 // 修改余量我还需要调用吗
func UserBundleBalanceCost() { func UserBundleBalanceCost() {
service.BundleProvider.AddBundleBalance(context.Background(), &bundle.AddBundleBalanceReq{}) service.BundleProvider.AddBundleBalance(context.Background(), &bundle.AddBundleBalanceReq{})
} }

View File

@ -217,14 +217,14 @@ func quickBos(file *multipart.FileHeader, mediaType string, mask string, source
} }
} }
var objectName string = fmt.Sprintf("%s/%s/%s", config.ConfigData.Oss.BaseDir, config.Env, filePath) var objectName string = fmt.Sprintf("%s/%s/%s", config.ConfigData.Oss.BaseDir, config.Env, filePath)
BOSClient, _ := objstorage.NewOSS(config.ConfigData.Oss.AccessKeyId, config.ConfigData.Oss.AccessKeySecret, config.ConfigData.Oss.Endpoint) BOSClient, _ := objstorage.NewOSS(os.Getenv(config.ConfigData.Oss.AccessKeyId), os.Getenv(config.ConfigData.Oss.AccessKeySecret), os.Getenv(config.ConfigData.Oss.Endpoint))
_, err = BOSClient.PutObjectFromBytes(config.ConfigData.Oss.BucketName, objectName, fileBytes) _, err = BOSClient.PutObjectFromBytes(os.Getenv(config.ConfigData.Oss.BucketName), objectName, fileBytes)
if err != nil { if err != nil {
//logger.Errorf("quickOss err", err) //logger.Errorf("quickOss err", err)
return return
} }
//url = fmt.Sprintf("%s%s%s/%s", config.BosHttp, config.BosBucketName, config.BosUrl, objectName) //url = fmt.Sprintf("%s%s%s/%s", config.BosHttp, config.BosBucketName, config.BosUrl, objectName)
url = fmt.Sprintf("%s/%s", config.ConfigData.Oss.CdnHost, objectName) url = fmt.Sprintf("%s/%s", os.Getenv(config.ConfigData.Oss.CdnHost), objectName)
return return
} }
@ -266,8 +266,9 @@ func BaiduCheckImage(imageByte []byte) (err error) {
return nil return nil
} }
func PutBos(filePath string, mediaType string, needRemove bool) (url string, err error) { func PutBos(filePath string, mediaType string, needRemove bool) (url string, err error) {
BOSClient, err := objstorage.NewOSS(config.ConfigData.Oss.AccessKeyId, config.ConfigData.Oss.AccessKeySecret, config.ConfigData.Oss.Endpoint) BOSClient, err := objstorage.NewOSS(os.Getenv(config.ConfigData.Oss.AccessKeyId), os.Getenv(config.ConfigData.Oss.AccessKeySecret), os.Getenv(config.ConfigData.Oss.Endpoint))
if err != nil { if err != nil {
fmt.Println("=== PutBos NewOss err ", err)
//logger.Errorf("PutBos NewOss err ", err) //logger.Errorf("PutBos NewOss err ", err)
err = errors.New(e.GetMsg(e.ErrorUploadBos)) err = errors.New(e.GetMsg(e.ErrorUploadBos))
return return
@ -290,14 +291,15 @@ func PutBos(filePath string, mediaType string, needRemove bool) (url string, err
} }
filePath = strings.Replace(filePath, model.MediaPath, "", 1) filePath = strings.Replace(filePath, model.MediaPath, "", 1)
var objectName string = fmt.Sprintf("%s/%s%s", config.ConfigData.Oss.BaseDir, config.Env, filePath) var objectName string = fmt.Sprintf("%s/%s%s", config.ConfigData.Oss.BaseDir, config.Env, filePath)
_, err = BOSClient.PutObjectFromBytes(config.ConfigData.Oss.BucketName, objectName, fileBytes) _, err = BOSClient.PutObjectFromBytes(os.Getenv(config.ConfigData.Oss.BucketName), objectName, fileBytes)
if err != nil { if err != nil {
fmt.Println("=== PutBos PutObject err ", err)
//logger.Errorf("PutBos PutObject err %+v", err.Error()) //logger.Errorf("PutBos PutObject err %+v", err.Error())
err = errors.New(e.GetMsg(e.ErrorUploadBos)) err = errors.New(e.GetMsg(e.ErrorUploadBos))
return return
} }
//url = fmt.Sprintf("%s%s%s/%s", config.BosHttp, config.BosBucketName, config.BosUrl, objectName) //url = fmt.Sprintf("%s%s%s/%s", config.BosHttp, config.BosBucketName, config.BosUrl, objectName)
url = fmt.Sprintf("%s/%s", config.ConfigData.Oss.CdnHost, objectName) url = fmt.Sprintf("%s/%s", os.Getenv(config.ConfigData.Oss.CdnHost), objectName)
return return
} }
func GetSnapshot(videoPath, snapshotPath string, frameNum int) (snapshotName string, err error) { func GetSnapshot(videoPath, snapshotPath string, frameNum int) (snapshotName string, err error) {
@ -331,14 +333,14 @@ func GetSnapshot(videoPath, snapshotPath string, frameNum int) (snapshotName str
} }
func UploadWithBuffer(fileBuffer *bytes.Buffer, cloudStoreSubPath string) (url string, err error) { func UploadWithBuffer(fileBuffer *bytes.Buffer, cloudStoreSubPath string) (url string, err error) {
Client, err := objstorage.NewOSS(config.ConfigData.Oss.AccessKeyId, config.ConfigData.Oss.AccessKeySecret, config.ConfigData.Oss.Endpoint) Client, err := objstorage.NewOSS(os.Getenv(config.ConfigData.Oss.AccessKeyId), os.Getenv(config.ConfigData.Oss.AccessKeySecret), os.Getenv(config.ConfigData.Oss.Endpoint))
if err != nil { if err != nil {
err = errors.New(fmt.Sprintf("云存储初始化失败:%s", err.Error())) err = errors.New(fmt.Sprintf("云存储初始化失败:%s", err.Error()))
return return
} }
cloudStoreSubPath = getEnvDir(cloudStoreSubPath) cloudStoreSubPath = getEnvDir(cloudStoreSubPath)
_, err = Client.PutObjectFromBytes(config.ConfigData.Oss.BucketName, cloudStoreSubPath, fileBuffer.Bytes()) _, err = Client.PutObjectFromBytes(os.Getenv(config.ConfigData.Oss.BucketName), cloudStoreSubPath, fileBuffer.Bytes())
url = config.ConfigData.Oss.CdnHost + "/" + cloudStoreSubPath url = os.Getenv(config.ConfigData.Oss.CdnHost) + "/" + cloudStoreSubPath
return return
} }
func getEnvDir(cloudStoreSubPath string) (ep string) { func getEnvDir(cloudStoreSubPath string) (ep string) {