GO 聊天IM系统(四)整合oos完成视频、图片等聊天资源的发送与储存

编程入门 行业动态 更新时间:2024-10-07 18:31:25

GO 聊天IM<a href=https://www.elefans.com/category/jswz/34/1770742.html style=系统(四)整合oos完成视频、图片等聊天资源的发送与储存"/>

GO 聊天IM系统(四)整合oos完成视频、图片等聊天资源的发送与储存

  1. 为什么上传到oos?

如果聊天记录中的图片和视频都储存在服务器当中的话,会大量的占用服务器储存空间

  1. 视频、图片等聊天资源以什么形式发送出去

已url的方式进行发送,在前端进行判断,找到相应资源并显示

两种方式:

1、通过服务器直接上传云服务器

2、网页向服务器发送请求获取云服务器签名,后直接上传到云服务器(可以降低自身服务器访问压力)

上传代码

func UploadOOS(c *gin.Context) {w := c.Writerreq := c.RequestsrcFile, head, err := req.FormFile("file")if err != nil {utils.RespFail(w, err.Error())}suffix := ".png"ofilName := head.Filenametem := strings.Split(ofilName, ".")if len(tem) > 1 {suffix = "." + tem[len(tem)-1]}fileName := fmt.Sprintf("%d%04d%s", time.Now().Unix(), rand.Int31(), suffix)// 创建OSSClient实例。// yourEndpoint填写Bucket对应的Endpoint,以华东1(杭州)为例,填写为。其它Region请按实际情况填写。// 阿里云账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM用户进行API访问或日常运维,请登录RAM控制台创建RAM用户。client, err := oss.New(viper.GetString("oss.Endpoint"), viper.GetString("oss.AccessKeyId"), viper.GetString("oss.AccessKeySecret"))if err != nil {fmt.Println("Error:", err)os.Exit(-1)}// 填写存储空间名称,例如examplebucket。bucket, err := client.Bucket(viper.GetString("oss.Bucket"))if err != nil {fmt.Println("Error:", err)os.Exit(-1)}// 依次填写Object的完整路径(例如exampledir/exampleobject.txt)和本地文件的完整路径(例如D:\\localpath\\examplefile.txt)。err = bucket.PutObject(fileName, srcFile)if err != nil {fmt.Println("Error:", err)os.Exit(-1)}url := "http://" + viper.GetString("oos.Bucket") + "." + viper.GetString("oos.EndPoint") + "/" + fileNameutils.RespOK(w, url, "发送图片成功")
}

更多推荐

GO 聊天IM系统(四)整合oos完成视频、图片等聊天资源的发送与储存

本文发布于:2024-02-11 21:18:32,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1683552.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:系统   资源   图片   视频   IM

发布评论

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

>www.elefans.com

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