Files
huangguo_server/app/service/updownloadser/updownloadser.go
T
rootandClaude Opus 5 8679200f41 Initial commit
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-15 13:57:10 +08:00

117 lines
3.6 KiB
Go

package updownloadser
import (
"context"
"errors"
"time"
"91porn-server/app/appg"
"91porn-server/common"
"91porn-server/common/constant"
"91porn-server/common/httputil"
"91porn-server/common/log"
"91porn-server/models/commod"
"91porn-server/models/v/vidmod"
)
// SendVidCover2FS 传送图片
func SendVidCover2FS(id string, ext string, fileData string) (respBody commod.Resp, err error) {
var params = map[string]string{
"fileData": fileData,
"ext": ext,
}
code, err := httputil.DefaultClientPostJsonWithResp(&respBody, common.BindUrl(appg.Conf.URL.UploadImgUrl, id), nil, params)
log.Info("http method SendVidCover2FS response code ==>", log.Any("statusCode", code), log.Any("respCode", respBody.Code))
if err != nil {
log.Error("file upload wrong ", log.E(err))
}
return
}
// SendFile2FS 传送视频文件到Fs
func SendFile2FS(fileID string, fileData string, pos int64, total int64) (respBody commod.Resp, err error) {
respBody = commod.Resp{}
var params = map[string]interface{}{
"taskId": fileID,
"fileData": fileData,
"pos": pos,
"totalPos": total,
"type": "sp",
}
c, cancle := context.WithTimeout(context.Background(), 5*time.Minute)
defer cancle()
code, err := httputil.DefaultClientPostJsonWithRespWithCtx(c, &respBody, appg.Conf.URL.UploadUrl, nil, params)
log.Info("http method SendFile2FS response code ==>", log.Any("statusCode", code), log.Any("respCode", respBody.Code))
if err != nil {
log.Error("SendFile2FS file upload wrong ", log.E(err))
}
return
}
// SendImageToFS 传送图片
func SendImageToFS(fileName, fileData string) (respBody vidmod.FsSendSingleResp, err error) {
var params = map[string]interface{}{
"fileData": fileData,
"fileName": fileName,
}
code, err := httputil.DefaultClientPostJsonWithResp(&respBody, appg.Conf.URL.SendSingleFile, nil, params)
log.Info("http method SendImageToFS response code ==>", log.Any("statusCode", code), log.Any("respCode", respBody.Code))
if err != nil {
log.Error("SendImageToFS file upload wrong ", log.E(err))
}
return
}
type FileInfo struct {
FileName *string `json:"fileName"` // 文件名称
FileData *string `json:"fileData"` // 文件存储在那台服务器
Resize bool `json:"resize"`
}
type InfoBatch struct {
Batch []*FileInfo `json:"batch"` //Info array
}
// SendImageToFSBatch 传送图片
func SendImageToFSBatch(batch InfoBatch) (respBody vidmod.FsSendBatchResp, err error) {
if len(batch.Batch) == 0 {
err = errors.New("no file")
return
}
c, cancle := context.WithTimeout(context.Background(), 5*time.Minute)
defer cancle()
code, err := httputil.DefaultClientPostJsonWithRespWithCtx(c, &respBody, appg.Conf.URL.SendBatchFile, nil, batch)
log.Info("http method SendImageToFSBatch response code ==>", log.Any("statusCode", code), log.Any("respCode", respBody.Code))
if err != nil {
log.Error("SendImageToFSBatch file upload wrong ", log.E(err))
}
return
}
// FsIO 获取io.ready
func FsIO(source, mds string) (data []byte, err error) {
c, cancle := context.WithTimeout(context.Background(), 5*time.Minute)
defer cancle()
_, data, err = httputil.DefaultClientGetBytesWithCtx(c, common.BindUrl(getOriginUrl(mds), source), nil)
if err != nil {
log.ZapLog.Warn("download file error", log.E(err))
}
return
}
func getOriginUrl(mds string) string {
switch mds {
case constant.MediaSourcePMS:
return appg.Conf.URL.CdnUrl
case constant.MediaSourceSP:
return appg.Conf.URL.OriginUrl
case constant.MediaSourceLaoSiJi:
return appg.Conf.URL.LaoSiJiOriginUrl
case constant.MediaSourceJH1B:
return appg.Conf.URL.JH1BOriginUrl
default:
return appg.Conf.URL.OriginUrl
}
}