golang用腾讯云的cos来实现上传头像

编程入门 行业动态 更新时间:2024-10-07 14:29:23

golang用<a href=https://www.elefans.com/category/jswz/34/1770070.html style=腾讯云的cos来实现上传头像"/>

golang用腾讯云的cos来实现上传头像

废话不多说直接上代码

前提条件你需要下载COS的SDK

go get -u github/tencentyun/cos-go-sdk-v5

ps:以下代码是用gin框架,这里主要是对这上传头像的使用 其他的逻辑就直接省略了。

//修改头像
func changeAvatar(ctx *gin.Context) {img, err := ctx.FormFile("avatar")//大小限制2Mbif img.Size > (2 << 20) {tool.RespErrorWithData(ctx, "头像文件过大")return}file, err := img.Open()filePath := "/avatar/" + tool.CreateUUID() + "." + strings.Split(img.Filename, `.`)[1]//上传头像err = service.UploadAvatar(file, filePath)if err != nil {fmt.Println("UploadAvatarErr: ", err)tool.RespInternalError(ctx)return}//以下代码可以省略cfg := tool.GetCfg().Cosurl := cfg.AvatarUrl + filePath   //头像入数据库err = service.ChangeAvatar(url, Id)if err != nil {fmt.Println("changeAvatar_ChangeAvatar Err is: ", err)tool.RespInternalError(ctx)return}ctx.JSON(200, gin.H{"data":   "修改成功","avatar": url,})
}

service.UploadAvatar

func UploadAvatar(file io.Reader, filePath string) error {cfg := tool.GetCfg().Cosu, _ := url.Parse(cfg.AvatarUrl)b := &cos.BaseURL{BucketURL: u}c := cos.NewClient(b, &http.Client{// 设置超时时间Timeout: 30 * time.Second,Transport: &cos.AuthorizationTransport{SecretID:  cfg.SecretId,SecretKey: cfg.SecretKey,},})_, err := c.Object.Put(context.Background(), filePath, file, nil)if err != nil {return err}return nil
}
cfg.AvatarUrl 是你的储存桶的地址  
cfg.SecretId  cfg.SecretKey 是你账号的ID和密钥

更多推荐

golang用腾讯云的cos来实现上传头像

本文发布于:2024-02-07 11:01:03,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1756265.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:腾讯   来实现   头像   上传   golang

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!