gin实现百度云文件上传服务

1.gin文件上传

  • 1.文件上传 接收文件

    //为 multipart forms 设置较低的内存限制 (默认是 32 MiB)
    router.MaxMultipartMemory = 8 << 20  // 8 MiB
    router.POST("/upload", func(c *gin.Context) {
     // 单文件
    file, _ := c.FormFile("file")
    log.Println(file.Filename)
    // 上传文件至指定目录
	c.SaveUploadedFile(file, dst)
2.gin框架获取参数

注意、

1.结构体一定要前后对应,既字段名与`from:“对应”

2.os操作文件一定要及时关闭,不然会造成文件进程被占用

GET
id := c.Query("id") //查询请求URL后面拼接的参数
name := c.PostForm("name") //从表单中查询参数
uuid := c.Param("uuid") //取得URL中参数
s, _ := c.Get("current_manager") //从用户上下文读取值    
page := c.DefaultQuery("page", "0") //查询请求URL后面的参数,如果没有填写默认值

POST
message := c.PostForm("message")
//从表单中查询参数,,如果没有就获取默认值
nick := c.DefaultPostForm("nick", "anonymous")

获取body的值
bodyBytes, _ := ioutil.ReadAll(c.Request.Body)

获取路径中的参数
 此规则能够匹配/user/john这种格式,但不能匹配/user/ 或 /user这种格式
name := c.Param("name")
// 但是,这个规则既能匹配/user/john/格式也能匹配/user/john/send这种格式
// 如果没有其他路由器匹配/user/john,它将重定向到/user/john/
name := c.Param

//绑定到结构体
var u User
//从http.Request中读取值到User结构体中,手动确定绑定类型binding.Form
err1 := c.BindWith(&u, binding.Form)

3.gin框架返回文件信息流

//设置请求头
c.Header("Content-Type","image/png")
c.Header("Content-Disposition","attachment;filename=\""+fMeta.FileName+"\"")
//返回信息流
c.File(fMeta.Location)

//判断文件是否存在  存在返回 true 不存在返回false
func checkFileIsExist(filename string) bool {
var exist = true
if _, err := os.Stat(filename); os.IsNotExist(err) {
	exist = false
}
return exist
}

4.中间间的书写

func Middleware() gin.HandlerFunc {
return func(c *gin.Context) {
	fmt.Println("先执行我哦")
	c.Next()//执行路由函数
	fmt.Println("I am after next")最后才执行我
}
}
  • 注意:在中间件中不能用return终止请求,应当用c.Abort()
  • return在中间件中应当用c.Abort()后,退出中间件,而c.Abort()之后会执行中间件后面的内容。

5.CEPH集群搭建与部署

  • 参考官方文档进行具体的学习
  • 1.docker安装ceph集群
  • 2.go获取连接ceph
  • 3.对ceph进行操作存储
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

抬头看天空

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值