113 lines
3.7 KiB
Go
113 lines
3.7 KiB
Go
package models
|
||
|
||
import (
|
||
openapi "github.com/alibabacloud-go/darabonba-openapi/client"
|
||
//util "github.com/alibabacloud-go/tea-utils/service"
|
||
//console "github.com/alibabacloud-go/tea-console/client"
|
||
env "github.com/alibabacloud-go/darabonba-env/client"
|
||
vod20170321 "github.com/alibabacloud-go/vod-20170321/v2/client"
|
||
"github.com/alibabacloud-go/tea/tea"
|
||
|
||
"log"
|
||
"fmt"
|
||
"regexp"
|
||
"github.com/spf13/viper"
|
||
)
|
||
|
||
// 使用AK&SK初始化账号Client
|
||
func InitVodClient (accessKeyId *string, accessKeySecret *string, regionId *string) (_result *vod20170321.Client, _err error) {
|
||
config := &openapi.Config{}
|
||
config.AccessKeyId = accessKeyId
|
||
config.AccessKeySecret = accessKeySecret
|
||
config.RegionId = regionId
|
||
_result = &vod20170321.Client{}
|
||
_result, _err = vod20170321.NewClient(config)
|
||
return _result, _err
|
||
}
|
||
|
||
func GetVideoM3U8(content string) (blob string) {
|
||
if len(regexp.MustCompile(`image.gameuiux.cn`).FindStringSubmatch(content)) > 0 {
|
||
key := regexp.MustCompile(`^https?://image.gameuiux.cn/`).ReplaceAllString(content, "")
|
||
|
||
// 从OSS中读取视频
|
||
bucket := GetBucket("gameui-image2")
|
||
body, err := bucket.GetObject(key)
|
||
if err != nil {
|
||
log.Println("读取视频失败", err)
|
||
return
|
||
}
|
||
defer body.Close()
|
||
|
||
// 先打印出视频对象
|
||
fmt.Println(body)
|
||
|
||
// 配置
|
||
accessKeyID := viper.GetString("video.accessKeyID")
|
||
accessKeySecret := viper.GetString("video.accessKey")
|
||
//endpoint := viper.GetString("video.endpoint")
|
||
regionId := "cn-shanghai"
|
||
|
||
// 连接点播服务的OSS
|
||
client, _err := InitVodClient(env.GetEnv(tea.String(accessKeyID)), env.GetEnv(tea.String(accessKeySecret)), ®ionId)
|
||
if _err != nil {
|
||
return _err.Error()
|
||
}
|
||
|
||
fmt.Println(client)
|
||
|
||
return "空"
|
||
|
||
//// 1.获取视频上传地址和凭证,并生成视频信息
|
||
//createUploadVideoRequest := &vod20170321.CreateUploadVideoRequest{
|
||
// Title: args[1],
|
||
// FileName: args[2],
|
||
//}
|
||
//createUploadVideoResponse, _err := client.CreateUploadVideo(createUploadVideoRequest)
|
||
//if _err != nil {
|
||
// return _err.Error()
|
||
//}
|
||
//console.Log(util.ToJSONString(tea.ToMap(createUploadVideoResponse)))
|
||
//// 媒体id
|
||
//uploadVideoId := createUploadVideoResponse.Body.VideoId
|
||
//console.Log(uploadVideoId)
|
||
//// 如果视频文件过大,上传超时后可以刷新视频凭证,然后继续上传
|
||
//refreshUploadVideoRequest := &vod20170321.RefreshUploadVideoRequest{
|
||
// VideoId: uploadVideoId,
|
||
//}
|
||
//refreshUploadVideoReponse, _err := client.RefreshUploadVideo(refreshUploadVideoRequest)
|
||
//if _err != nil {
|
||
// return _err
|
||
//}
|
||
//console.Log(util.ToJSONString(tea.ToMap(refreshUploadVideoReponse)))
|
||
//// 2.oss视频文件上传,需要用户实现
|
||
//// 3.上传过程中,获取媒体上传详情
|
||
//getUploadDetailsRequest := &vod20170321.GetUploadDetailsRequest{
|
||
// MediaIds: uploadVideoId,
|
||
//}
|
||
//getUploadDetailsReponse, _err := client.GetUploadDetails(getUploadDetailsRequest)
|
||
//if _err != nil {
|
||
// return _err
|
||
//}
|
||
//console.Log(util.ToJSONString(tea.ToMap(getUploadDetailsReponse)))
|
||
//// 4.媒体上传完成之后,可以获取媒体播放信息进行播放
|
||
//// 4.1 通过播放凭证播放
|
||
//getPlayInfoRequest := &vod20170321.GetPlayInfoRequest{
|
||
// VideoId: uploadVideoId,
|
||
//}
|
||
//getPlayInfoReponse, _err := client.GetPlayInfo(getPlayInfoRequest)
|
||
//if _err != nil {
|
||
// return _err
|
||
//}
|
||
//console.Log(util.ToJSONString(tea.ToMap(getPlayInfoReponse)))
|
||
//// 4.2 通过播放地址播放
|
||
//getVideoPlayAuthRequest := &vod20170321.GetVideoPlayAuthRequest{
|
||
// VideoId: uploadVideoId,
|
||
//}
|
||
//getVideoPlayAuthReponse, _err := client.GetVideoPlayAuth(getVideoPlayAuthRequest)
|
||
//if _err != nil {
|
||
// return _err
|
||
//}
|
||
//console.Log(util.ToJSONString(tea.ToMap(getVideoPlayAuthReponse)))
|
||
}
|
||
return
|
||
} |