0
点赞
收藏
分享

微信扫一扫

获取七牛访问链接

package tools

import (
"log"
"net/http"
"strconv"
"time"

"github.com/gin-gonic/gin"
"github.com/qiniu/go-sdk/v7/auth"
"github.com/qiniu/go-sdk/v7/auth/qbox"
"github.com/qiniu/go-sdk/v7/storage"
)

var accessKey = ""
var secretKey = ""
var TokenCreateTime string
var QiToken string
var domain = "http://re6aow2in.bkt.clouddn.com/"

// 七牛公开访问链接
func PublicAccessURL(c *gin.Context) {
c.JSON(http.StatusOK, gin.H{"message": PublicUrl(c.Query("key"))})
}

func PublicUrl(key string) string {
publicAccessURL := storage.MakePublicURL(domain, key)
return publicAccessURL
}

// 七牛私有访问链接
func PrivateAccessURL(c *gin.Context) {
c.JSON(http.StatusOK, gin.H{"message": Purl(c.Query("key"))})
}

func Purl(key string) string {
mac := qbox.NewMac(accessKey, secretKey)
deadline := time.Now().Add(time.Second * 7200).Unix() //2小时有效期
privateAccessURL := storage.MakePrivateURL(mac, domain, key, deadline)
return privateAccessURL
}

// 获取七牛上传token
func QiniuToken(c *gin.Context) {
cha := TimeDifference(TokenCreateTime)
if cha > 115 {
log.Println("============超过115分钟,从新获取")
mac := auth.New(accessKey, secretKey)
// 设置上传凭证有效期
putPolicy := storage.PutPolicy{
Scope: "gugeapp",
}
putPolicy.Expires = 7200 //示例2小时有效期
QiToken = putPolicy.UploadToken(mac)
// 当前时间戳(秒)
TokenCreateTime = strconv.FormatInt(time.Now().Unix(), 10)
}
c.JSON(http.StatusOK, gin.H{"message": QiToken})
}

举报

相关推荐

0 条评论