赞
踩
在go.mod中引入
github.com/qiniu/api.v7/v7 v7.8.2
控制器中引入
- "github.com/qiniu/api.v7/v7/auth/qbox"
- "github.com/qiniu/api.v7/v7/storage"
使用这个会出现一个警告
但是不会影响上传
- fileSuffix := ".png"
- rand.Seed(time.Now().UnixNano())
- randNum := fmt.Sprintf("%d", rand.Intn(9999)+1000)
- hashName := md5.Sum([]byte(time.Now().Format("2006_01_02_15_04_05_") + randNum))
- fileName := fmt.Sprintf("%x", hashName) + fileSuffix
- imageUrl := "static/img/" + fileName
- err := u.SaveToFile("image", imageUrl)
- if err != nil {
- u.Ctx.WriteString(fmt.Sprintf("%v", err))
- return
- }
- u.Ctx.WriteString("上传本地成功~!!!!!!!")
- u.Ctx.WriteString(imageUrl)
保存本地的位置是static/img,如果没有请先创建。
代码如下:
- bucket, _ := beego.AppConfig.String("bucket")
- putPolicy := storage.PutPolicy{
- Scope: bucket,
- }
- accessKey, _ := beego.AppConfig.String("accessKey")
- secretKey, _ := beego.AppConfig.String("secretKey")
- mac := qbox.NewMac(accessKey, secretKey)
- upToken := putPolicy.UploadToken(mac)
- cfg := storage.Config{}
- // 空间对应的机房
- cfg.Zone = &storage.ZoneHuadong
- // 是否使用https域名
- cfg.UseHTTPS = true
- // 上传是否使用CDN上传加速
- cfg.UseCdnDomains = true
- // 构建表单上传的对象
- formUploader := storage.NewFormUploader(&cfg)
- ret := storage.PutRet{}
- // 可选配置
- putExtra := storage.PutExtra{
- Params: map[string]string{
- "x:name": "github logo",
- },
- }
- localFile := imageUrl
- //imageUrl:static/img/7bc0954e8edfc48895e7c33c280a66d3.png
- key := "shopping/userinfo/" + fileName //存储后的文件位置,shopping文件夹 userinfo文件夹 filename文件名称
- err = formUploader.PutFile(context.Background(), &ret, upToken, key, localFile, &putExtra)
- if err != nil {
- fmt.Println(err)
- return
- }
- u.Ctx.WriteString("云存储成功")
key:表示的是图片上传到空间后存储的位置
localFile:表示的是要上传的文件地址
这里“构建表单上传的对象”不是很了解,后续再进行补充。
后续有更好的方法还会进行补充,希望大佬们能够指点!
赞
踩
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。