树莓派搭建minio实现oss对象存储+gin的在线视频播放


前言

可以了可以了,很开心了,经过两天的努力,终于实现了树莓派搭建minio实现oss对象存储+gin的在线视频播放项目!!!


一、瓶颈

做成在线视频最大的瓶颈就算不知道如何返回一个可以让浏览器播放的视频格式,在看了源码和研读官方文档后,终于发现文档里面有一个字段可以设置响应处理的参数reqParams是一个map类型,“response-content-disposition”:" video/mpeg4"

话不多说上代码

二、代码

/*
 * @Author: ylr
 * @Date: 2020-11-09 18:06:44
 * @LastEditTime: 2020-11-09 21:48:19
 * @LastEditors: your name
 * @FilePath: \project\src\github.com\DF1024\Minio对象存储\签名直传\PresignedGetObj.go
 */
package 签名直传

import (
	"fmt"
	"net/url"
	"time"
)

func PresignedGetObject() {
	// Set request parameters for content-disposition.
	reqParams := make(url.Values)
	//reqParams	url.Values	额外的响应头,支持
	//response-expires,  到期时间
	//response-content-type,  响应内容的类型
	//response-cache-control,   缓存控制
	// response-content-disposition。  内容处理 例如,附件形式强制下载"attachment; filename=\"chat.mp4\""
	// reqParams.Set("response-content-type", "attachment; filename=\"chat.mp4\"")
	reqParams.Set("response-content-disposition", "	video/mpeg4")
	// Generates a presigned url which expires in a day.

	presignedURL, err := minioClient.PresignedGetObject("df1024", "chat.mp4", time.Second*24*60*60, reqParams)
	if err != nil {
		fmt.Println(err)
		return
	}
	fmt.Println("Successfully generated presigned URL", presignedURL)
}

在这里插入图片描述图中url就算访问的地址
效果
在这里插入图片描述
接下来就是把他放入gin的代码里面就大功告成!


版权声明:本文为abao_gege原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。