本篇文档为您介绍了如何使用账号AccessKey以及STS的示例代码进行Go SDK初始化。
前提条件
- 确认已注册阿里云账号,完成实名认证,并开通了视频点播服务。
- 准备好访问点播服务使用的Access Key。可以在阿里云Access Key管理创建主账号Access Key,也可以在RAM访问控制台创建RAM用户,并授予VOD权限后进行相应操作,请参见创建RAM用户并授权。
初始化
点播服务的接入区域请参见接入区域和标识,例如:接入区域在上海,请使用
cn-shanghai
。
- 填入账号AccessKey信息,进行初始化。示例如下:
package main import ( "github.com/aliyun/alibaba-cloud-sdk-go/sdk" "github.com/aliyun/alibaba-cloud-sdk-go/services/vod" "github.com/aliyun/alibaba-cloud-sdk-go/sdk/auth/credentials" "fmt" ) func InitVodClient(accessKeyId string, accessKeySecret string) (client *vod.Client, err error) { // 点播服务接入区域 regionId := "cn-shanghai" // 创建授权对象 credential := &credentials.AccessKeyCredential{ accessKeyId, accessKeySecret, } // 自定义config config := sdk.NewConfig() config.AutoRetry = true // 失败是否自动重试 config.MaxRetryTime = 3 // 最大重试次数 config.Timeout = 3000000000 // 连接超时,单位:纳秒;默认为3秒 // 创建vodClient实例 return vod.NewClientWithOptions(regionId, config, credential) }
- 填入STS信息,进行初始化。示例如下:
package main import ( "github.com/aliyun/alibaba-cloud-sdk-go/sdk" "github.com/aliyun/alibaba-cloud-sdk-go/services/vod" "github.com/aliyun/alibaba-cloud-sdk-go/sdk/auth/credentials" "fmt" ) func InitVodClient(accessKeyId string, accessKeySecret string, securityToken string) (client *vod.Client, err error) { // 点播服务接入区域 regionId := "cn-shanghai" // 创建授权对象 credential := &credentials.StsTokenCredential{ accessKeyId, accessKeySecret, securityToken, } // 连接设置 config := sdk.NewConfig() config.AutoRetry = true // 失败是否自动重试 config.MaxRetryTime = 3 // 最大重试次数 config.Timeout = 3000000000 // 连接超时,单位:纳秒;默认为3秒 // 创建vodClient实例 return vod.NewClientWithOptions(regionId, config, credential) }
使用说明
创建API请求时,调用的方法名为vod.Create${apiName}Request
,其中${apiName}
需要替换成要使用的视频点播API,视频点播API名称请参见API概览。
调用示例
调用获取播放地址接口GetPlayInfo为例。示例如下:
func MyGetPlayInfo(client *vod.Client, videoId string) (response *vod.GetPlayInfoResponse, err error) {
// 创建API请求并设置参数,调用vod.Create${apiName}Request
request := vod.CreateGetPlayInfoRequest()
request.VideoId = videoId
request.AcceptFormat = "JSON"
// 发起请求并处理异常,调用client.${apiName}(request)
return client.GetPlayInfo(request)
}
func main() {
client, err := InitVodClient("<AccessKeyId>", "<AccessKeySecret>")
if err != nil {
// 异常处理
panic(err)
}
response, err := MyGetPlayInfo(client, "<videoId>")
if err != nil {
// 异常处理
panic(err)
}
// fmt.Println(response)
playList := response.PlayInfoList.PlayInfo
for _, playInfo := range playList {
// 打印清晰度和对应的播放地址
fmt.Printf("%s: %s\n", playInfo.Definition, playInfo.PlayURL)
}
}
说明
- 获取更多信息,请参见阿里云SDK开发指南-使用Go SDK。
- Go SDK同时支持并发调用和泛化调用。
- 示例代码下载:test_vod.go。
在文档使用中是否遇到以下问题
更多建议
匿名提交