|
- package qiniu
-
- import (
- "gim/internal/business/comm/md"
- "gim/internal/business/comm/utils"
- "time"
-
- "github.com/qiniu/api.v7/v7/auth/qbox"
- _ "github.com/qiniu/api.v7/v7/conf"
- "github.com/qiniu/api.v7/v7/storage"
- )
-
- // 请求图片上传地址信息
- func ReqImgUpload(f *md.FileCallback, callbackUrl string) interface{} {
- if ext := utils.FileExt(f.FileName); ext == "png" || ext == "jpg" || ext == "jpeg" || ext == "gif" || ext == "bmp" || ext == "webp" {
- f.Width = "$(imageInfo.width)"
- f.Height = "$(imageInfo.height)"
- }
- f.Provider = "qiniu"
- f.FileSize = "$(fsize)"
- f.Hash = "$(etag)"
- f.Bucket = "$(bucket)"
- f.Mime = "$(mimeType)"
- f.Time = utils.Int64ToStr(time.Now().Unix())
- f.Sign = Sign(f.Time)
- putPolicy := storage.PutPolicy{
- Scope: BUCKET + ":" + f.FileName, // 使用覆盖方式时候必须请求里面有key,否则报错
- Expires: Expires,
- ForceSaveKey: true,
- SaveKey: f.FileName,
- //MimeLimit: "image/*", // 只允许上传图片
- CallbackURL: callbackUrl,
- CallbackBody: utils.SerializeStr(f),
- CallbackBodyType: "application/json",
- }
- return &struct {
- Method string `json:"method"`
- Key string `json:"key"`
- Host string `json:"host"`
- Token string `json:"token"`
- }{Key: f.FileName, Method: "POST", Host: BUCKET_SCHEME + "://" + BUCKET_REGION, Token: putPolicy.UploadToken(qbox.NewMac(AK, SK))}
- }
|