作者 yangfu

oss region hangzhou

... ... @@ -12,6 +12,9 @@ cname ="https://media.fjmaimaimai.com/"
OssEndPoint ="oss-cn-shenzhen.aliyuncs.com"
BuckName ="timeless-world"
OssEndPointHZ ="oss-cn-hangzhou.aliyuncs.com"
BuckNameHZ ="byte-bank"
#数据库相关
MYSQL_USER = "${MYSQL_USER||root1}"
MYSQL_PASSWORD = "${MYSQL_PASSWORD||sutianxia2018}"
... ...
... ... @@ -21,7 +21,7 @@ type BuckObject struct {
FileName string `json:"fileName"`
}
//创建视频上传凭证
// 创建视频上传凭证
func CreateOssUpload(header *protocol.RequestHeader, MultipartForm *multipart.Form) (rsp interface{}, err error) {
var objects []aliyun.Object
var listPath []BuckObject
... ... @@ -67,9 +67,15 @@ func CreateOssUpload(header *protocol.RequestHeader, MultipartForm *multipart.Fo
return
}
//创建视频上传凭证
func CreateStsAuth(header *protocol.RequestHeader, files []string) (rsp interface{}, err error) {
access, e := aliyun.DefaultSts()
// 创建视频上传凭证
func CreateStsAuth(header *protocol.RequestHeader, files []string, regionId string) (rsp interface{}, err error) {
var buckName = constant.BuckName
var ossEndPoint = constant.OssEndPoint
if regionId == aliyun.OssReginHZ {
buckName = constant.BuckNameHZ
ossEndPoint = constant.OssEndPointHZ
}
access, e := aliyun.Sts(regionId, constant.AccessKeyID, constant.AccessKeySecret, buckName, ossEndPoint)
if e != nil {
err = e
log.Error(e.Error())
... ... @@ -79,8 +85,8 @@ func CreateStsAuth(header *protocol.RequestHeader, files []string) (rsp interfac
fileBase := filepath.Base(v)
key := utils.GetFileName(header.AppProject, aliyun.FileObject, fileBase)
listPath = append(listPath, BuckObject{
DefaultHost: fmt.Sprintf("https://%v.%v", constant.BuckName, constant.OssEndPoint),
Path: fmt.Sprintf("https://%v.%v/%v", constant.BuckName, constant.OssEndPoint, key),
DefaultHost: fmt.Sprintf("https://%v.%v", buckName, ossEndPoint),
Path: fmt.Sprintf("https://%v.%v/%v", buckName, ossEndPoint, key),
Key: key,
FileName: fileBase,
})
... ...
... ... @@ -5,6 +5,9 @@ var (
BuckName = "mmm-vod-dev-public"
//OssAccessKeyID string = "LTAI4GGkZMdDoxRpehefbQhV"
//OssAccessKeySecret string = "tytXo0RwxhGa3luyfmBB6PKe8M6Uu4"
OssEndPointHZ = "oss-cn-hangzhou.aliyuncs.com"
BuckNameHZ = "byte-bank"
)
func init() {
... ...
... ... @@ -19,7 +19,7 @@ import (
*/
/*
1.前端sts上传需要设置bucket跨域,bucket->权限管理->跨域设置
1.前端sts上传需要设置bucket跨域,bucket->权限管理->跨域设置
*/
func DefaultSts() (interface{}, error) {
//构建一个阿里云客户端, 用于发起请求。
... ... @@ -51,3 +51,39 @@ func DefaultSts() (interface{}, error) {
"endpoint": constant.OssEndPoint,
}, nil
}
func Sts(regionId, accessKeyID, accessKeySecret, buckName, ossEndPoint string) (interface{}, error) {
//构建一个阿里云客户端, 用于发起请求。
//构建阿里云客户端时,需要设置AccessKey ID和AccessKey Secret。
client, err := sts.NewClientWithAccessKey(regionId, accessKeyID, accessKeySecret)
if err != nil {
return nil, err
}
//构建请求对象。
request := sts.CreateAssumeRoleRequest()
request.Scheme = "https"
request.RoleArn = constant.RoleArn
// 会话名称
request.RoleSessionName = "role-oss-sts-session"
//发起请求,并得到响应。
response, e := client.AssumeRole(request)
if e != nil {
err = e
log.Error(e.Error())
}
return map[string]interface{}{
"accessKeySecret": response.Credentials.AccessKeySecret,
"expiration": response.Credentials.Expiration,
"accessKeyId": response.Credentials.AccessKeyId,
"securityToken": response.Credentials.SecurityToken,
"bucket": buckName,
"endpoint": ossEndPoint,
}, nil
}
var (
OssReginSZ = "cn-shenzhen"
OssReginHZ = "cn-hangzhou"
)
... ...
... ... @@ -14,7 +14,7 @@ type VodController struct {
controllers.BaseController
}
//创建视频上传凭证 CreateUploadVideo
// 创建视频上传凭证 CreateUploadVideo
// @router /createUploadVideo [post]
func (this *VodController) CreateUploadVideo() {
var msg *domain.ResponseMessage
... ... @@ -38,7 +38,7 @@ func (this *VodController) CreateUploadVideo() {
msg = domain.NewReturnResponse(vod.CreateUploadVideo(header, request))
}
//创建视频上传凭证(多个) CreateUploadVideos
// 创建视频上传凭证(多个) CreateUploadVideos
// @router /createUploadVideos [post]
func (this *VodController) CreateUploadVideos() {
var msg *domain.ResponseMessage
... ... @@ -75,7 +75,7 @@ func (this *VodController) CreateUploadVideos() {
msg = domain.NewReturnResponse(response, err)
}
//刷新视频上传凭证 RefreshUploadVideo
// 刷新视频上传凭证 RefreshUploadVideo
// @router /refreshUploadVideo [post]
func (this *VodController) RefreshUploadVideo() {
var msg *domain.ResponseMessage
... ... @@ -96,7 +96,7 @@ func (this *VodController) RefreshUploadVideo() {
msg = domain.NewReturnResponse(vod.RefreshUploadVideo(header, request))
}
//创建图片上传凭证 CreateUploadImage
// 创建图片上传凭证 CreateUploadImage
// @router /createUploadImage [post]
func (this *VodController) CreateUploadImage() {
var msg *domain.ResponseMessage
... ... @@ -118,7 +118,7 @@ func (this *VodController) CreateUploadImage() {
msg = domain.NewReturnResponse(vod.CreateUploadImage(header, request))
}
//创建图片上传凭证 CreateUploadImages
// 创建图片上传凭证 CreateUploadImages
// @router /createUploadImages [post]
func (this *VodController) CreateUploadImages() {
var msg *domain.ResponseMessage
... ... @@ -157,7 +157,7 @@ func (this *VodController) CreateUploadImages() {
msg = domain.NewReturnResponse(response, err)
}
//获取视频播放地址 GetPlayInfo
// 获取视频播放地址 GetPlayInfo
// @router /getPlayInfo [post]
func (this *VodController) GetPlayInfo() {
var msg *domain.ResponseMessage
... ... @@ -178,7 +178,7 @@ func (this *VodController) GetPlayInfo() {
msg = domain.NewReturnResponse(vod.GetPlayInfo(header, request))
}
//获取视频播放凭证 GetVideoPlayAuth
// 获取视频播放凭证 GetVideoPlayAuth
// @router /getVideoPlayAuth [post]
func (this *VodController) GetVideoPlayAuth() {
var msg *domain.ResponseMessage
... ... @@ -199,7 +199,7 @@ func (this *VodController) GetVideoPlayAuth() {
msg = domain.NewReturnResponse(vod.GetVideoPlayAuth(header, request))
}
//归档对象 PutObject
// 归档对象 PutObject
// @router /putObject [post]
func (this *VodController) PutObject() {
var msg *domain.ResponseMessage
... ... @@ -225,5 +225,5 @@ func (this *VodController) CreateStsAuth() {
return
}
header := controllers.GetRequestHeader(this.Ctx)
msg = domain.NewReturnResponse(oss.CreateStsAuth(header, request))
msg = domain.NewReturnResponse(oss.CreateStsAuth(header, request, aliyun.OssReginSZ))
}
... ...
... ... @@ -14,7 +14,7 @@ type VodController struct {
controllers.BaseController
}
//创建视频上传凭证 CreateUploadVideo
// 创建视频上传凭证 CreateUploadVideo
// @router /createUploadVideo [post]
func (this *VodController) CreateUploadVideo() {
var msg *domain.ResponseMessage
... ... @@ -38,7 +38,7 @@ func (this *VodController) CreateUploadVideo() {
msg = domain.NewReturnResponse(vod.CreateUploadVideo(header, request))
}
//创建视频上传凭证(多个) CreateUploadVideos
// 创建视频上传凭证(多个) CreateUploadVideos
// @router /createUploadVideos [post]
func (this *VodController) CreateUploadVideos() {
var msg *domain.ResponseMessage
... ... @@ -75,7 +75,7 @@ func (this *VodController) CreateUploadVideos() {
msg = domain.NewReturnResponse(response, err)
}
//刷新视频上传凭证 RefreshUploadVideo
// 刷新视频上传凭证 RefreshUploadVideo
// @router /refreshUploadVideo [post]
func (this *VodController) RefreshUploadVideo() {
var msg *domain.ResponseMessage
... ... @@ -96,7 +96,7 @@ func (this *VodController) RefreshUploadVideo() {
msg = domain.NewReturnResponse(vod.RefreshUploadVideo(header, request))
}
//创建图片上传凭证 CreateUploadImage
// 创建图片上传凭证 CreateUploadImage
// @router /createUploadImage [post]
func (this *VodController) CreateUploadImage() {
var msg *domain.ResponseMessage
... ... @@ -118,7 +118,7 @@ func (this *VodController) CreateUploadImage() {
msg = domain.NewReturnResponse(vod.CreateUploadImage(header, request))
}
//创建图片上传凭证 CreateUploadImages
// 创建图片上传凭证 CreateUploadImages
// @router /createUploadImages [post]
func (this *VodController) CreateUploadImages() {
var msg *domain.ResponseMessage
... ... @@ -157,7 +157,7 @@ func (this *VodController) CreateUploadImages() {
msg = domain.NewReturnResponse(response, err)
}
//获取视频播放地址 GetPlayInfo
// 获取视频播放地址 GetPlayInfo
// @router /getPlayInfo [post]
func (this *VodController) GetPlayInfo() {
var msg *domain.ResponseMessage
... ... @@ -178,7 +178,7 @@ func (this *VodController) GetPlayInfo() {
msg = domain.NewReturnResponse(vod.GetPlayInfo(header, request))
}
//获取视频播放凭证 GetVideoPlayAuth
// 获取视频播放凭证 GetVideoPlayAuth
// @router /getVideoPlayAuth [post]
func (this *VodController) GetVideoPlayAuth() {
var msg *domain.ResponseMessage
... ... @@ -199,7 +199,7 @@ func (this *VodController) GetVideoPlayAuth() {
msg = domain.NewReturnResponse(vod.GetVideoPlayAuth(header, request))
}
//归档对象 PutObject
// 归档对象 PutObject
// @router /putObject [post]
func (this *VodController) PutObject() {
var msg *domain.ResponseMessage
... ... @@ -220,12 +220,20 @@ func (this *VodController) CreateStsAuth() {
}()
var request = struct {
FileNames []string `json:"files"`
RegionId string `json:"regionId"` // cn-shenzhen cn-hangzhou 默认深圳:cn-shenzhen
ProjectId string `json:"projectId"` // 项目标识 byte-bank
}{}
if len(request.RegionId) == 0 {
request.RegionId = aliyun.OssReginSZ
}
if err := json.Unmarshal(this.ByteBody, &request); err != nil {
log.Error(err)
msg = domain.BadRequestParam(1)
return
}
header := controllers.GetRequestHeader(this.Ctx)
msg = domain.NewReturnResponse(oss.CreateStsAuth(header, request.FileNames))
if len(header.AppProject) == 0 && request.ProjectId != "" {
header.AppProject = request.ProjectId
}
msg = domain.NewReturnResponse(oss.CreateStsAuth(header, request.FileNames, request.RegionId))
}
... ...