全部产品
云市场

初始化

更新时间:2019-06-05 10:48:04

前置条件

初始化

点播服务的接入区域参考 接入区域标识,如国内请使用cn-shanghai

  1. package main
  2. import (
  3. "github.com/aliyun/alibaba-cloud-sdk-go/sdk"
  4. "github.com/aliyun/alibaba-cloud-sdk-go/services/vod"
  5. "github.com/aliyun/alibaba-cloud-sdk-go/sdk/auth/credentials"
  6. "fmt"
  7. )
  8. func InitVodClient(accessKeyId string, accessKeySecret string) (client *vod.Client, err error) {
  9. // 点播服务接入区域
  10. regionId := "cn-shanghai"
  11. // 创建授权对象
  12. credential := &credentials.AccessKeyCredential{
  13. accessKeyId,
  14. accessKeySecret,
  15. }
  16. // 自定义config
  17. config := sdk.NewConfig()
  18. config.AutoRetry = true // 失败是否自动重试
  19. config.MaxRetryTime = 3 // 最大重试次数
  20. config.Timeout = 3000000000 // 连接超时,单位:纳秒;默认为3秒
  21. // 创建vodClient实例
  22. return vod.NewClientWithOptions(regionId, config, credential)
  23. }
  • 使用 STS 初始化
  1. package main
  2. import (
  3. "github.com/aliyun/alibaba-cloud-sdk-go/sdk"
  4. "github.com/aliyun/alibaba-cloud-sdk-go/services/vod"
  5. "github.com/aliyun/alibaba-cloud-sdk-go/sdk/auth/credentials"
  6. "fmt"
  7. )
  8. func InitVodClient(accessKeyId string, accessKeySecret string, securityToken string) (client *vod.Client, err error) {
  9. // 点播服务接入区域
  10. regionId := "cn-shanghai"
  11. // 创建授权对象
  12. credential := &credentials.StsTokenCredential{
  13. accessKeyId,
  14. accessKeySecret,
  15. securityToken,
  16. }
  17. // 连接设置
  18. config := sdk.NewConfig()
  19. config.AutoRetry = true // 失败是否自动重试
  20. config.MaxRetryTime = 3 // 最大重试次数
  21. config.Timeout = 3000000000 // 连接超时,单位:纳秒;默认为3秒
  22. // 创建vodClient实例
  23. return vod.NewClientWithOptions(regionId, config, credential)
  24. }

使用说明

创建API请求时,调用的方法名为vod.Create${apiName}Request,其中${apiName}需要替换成要使用的点播API,可用的API名称参考 点播API概览

调用示例

以调用获取播放地址接口 GetPlayInfo 为例:

  1. func MyGetPlayInfo(client *vod.Client, videoId string) (response *vod.GetPlayInfoResponse, err error) {
  2. // 创建API请求并设置参数,调用vod.Create${apiName}Request
  3. request := vod.CreateGetPlayInfoRequest()
  4. request.VideoId = videoId
  5. request.AcceptFormat = "JSON"
  6. // 发起请求并处理异常,调用client.${apiName}(request)
  7. return client.GetPlayInfo(request)
  8. }
  9. func main() {
  10. client, err := InitVodClient("<AccessKeyId>", "<AccessKeySecret>")
  11. if err != nil {
  12. // 异常处理
  13. panic(err)
  14. }
  15. response, err := MyGetPlayInfo(client, "<videoId>")
  16. if err != nil {
  17. // 异常处理
  18. panic(err)
  19. }
  20. // fmt.Println(response)
  21. playList := response.PlayInfoList.PlayInfo
  22. for _, playInfo := range playList {
  23. // 打印清晰度和对应的播放地址
  24. fmt.Printf("%s: %s\n", playInfo.Definition, playInfo.PlayURL)
  25. }
  26. }

附加说明