package admin import ( "fmt" "strings" "time" "zhiyuan/pkg/app" "zhiyuan/pkg/config" "zhiyuan/pkg/utils" "github.com/gin-gonic/gin" "github.com/qiniu/go-sdk/v7/auth" "github.com/qiniu/go-sdk/v7/storage" ) func QiniuToken(c *gin.Context) { fileType := strings.ToLower(c.Query("file_type")) /*if fileType != "jpg" && fileType != "png" && fileType != "pdf" && fileType != "docx" && fileType != "svg" && fileType != "mp4" { app.Error(c, "文件后缀有误") return }*/ var fsizeLimit int64 = 1024 * 1024 * 100 if fileType == "mp4" { fsizeLimit = 1024 * 1024 * 30 } key := utils.ToStr(time.Now().UnixNano()) + string(utils.RandomCreateBytes(10, utils.RAND_KIND_NUM)) + "." + fileType putPolicy := storage.PutPolicy{ Scope: fmt.Sprintf("%s:%s", config.Cfg.Qiniu.Bucket, key), FsizeLimit: fsizeLimit, } mac := auth.New(config.Cfg.Qiniu.AccessKey, config.Cfg.Qiniu.SecretKey) upToken := putPolicy.UploadToken(mac) app.Success(c, gin.H{ "token": upToken, "key": key, }) }