通过OBS转存媒资
引导式阅读
Go
通过OBS转存媒资
作者
C***
上架时间
2023-11-17 07:58:07

0.版本说明

本示例基于华为云SDK开发。

1.功能介绍

如在使用点播服务前,已经在OBS桶中存储了音视频文件,可以通过OBS转存的方式将存储在OBS中的媒资转存到点播服务中,使用点播服务的音视频管理功能。存量托管任务创建后仅执行一次转存请求,会将选定的桶路径下的所有文件或指定类型文件托管至点播桶,谨慎选择桶路径,避免误操作造成不必要的费用损失;可选填转码、工作流参数,托管后的媒资会执行转码或工作流任务。

2.准备工作

1.具备开发环境,支持Go 1.16及以上版本。
2.查询region,请参考地区和终端节点
3.需要将存储文件的OBS桶授权给点播服务,参考桶授权;且OBS桶不能跨域使用。
4.获取点播SDK,可通过华为SDK中心

3.代码示例

1.创建存量托管任务,详细参数请参考API说明

package main import ( vodRegion "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/vod/v1/region" coreConfig "github.com/huaweicloud/huaweicloud-sdk-go-v3/core/config" "fmt" "os" vod "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/vod/v1" coreBasic "github.com/huaweicloud/huaweicloud-sdk-go-v3/core/auth/basic" vodModel "github.com/huaweicloud/huaweicloud-sdk-go-v3/services/vod/v1/model" ) // 认证用的ak和sk硬编码到代码中或者明文存储都有很大的安全风险,建议在配置文件或者环境变量中密文存放,使用时解密,确保安全; // 本示例以ak和sk保存在环境变量中来实现身份验证为例,运行本示例前请先在本地环境中设置环境变量HUAWEICLOUD_SDK_AK和HUAWEICLOUD_SDK_SK。 var obsStockTaskDemoAK = os.Getenv("HUAWEICLOUD_SDK_AK") var obsStockTaskDemoSK = os.Getenv("HUAWEICLOUD_SDK_SK") const obsStockTaskDemoREGION = "cn-north-4" type ObsStockTaskDemo struct{} func NewObsStockTaskDemoDefault() ObsStockTaskDemo { o := ObsStockTaskDemo{} return o } // 根据服务实际节点填写,如cn-north-1,cn-east-2 func ObsStockTaskDemoGetVodClient() vod.VodClient { httpConfig := coreConfig.DefaultHttpConfig().WithIgnoreSSLVerification(true).WithTimeout(3) // 根据实际需要,可以设置代理 // 用户名和密码硬编码到代码中或者明文存储都有很大的安全风险,建议在配置文件或者环境变量中密文存放,使用时解密,确保安全; // 本示例以ak和sk保存在环境变量中来实现身份验证为例,运行本示例前请先在本地环境中设置环境变量HUAWEICLOUD_PROXY_USERNAME和HUAWEICLOUD_PROXY_PASSWORD。 /*httpConfig. withProxyHost("proxy.xxxxxx.com"). withProxyPort(8080). withProxyUsername(os.Getenv("HUAWEICLOUD_PROXY_USERNAME")). withProxyPassword(os.Getenv("HUAWEICLOUD_PROXY_PASSWORD"))*/ auth := coreBasic.NewCredentialsBuilder().WithAk(obsStockTaskDemoAK).WithSk(obsStockTaskDemoSK).Build() vodClient := *vod.NewVodClient(vod.VodClientBuilder(). WithCredential(auth). WithHttpConfig(httpConfig). WithRegion(vodRegion.ValueOf(obsStockTaskDemoREGION)). Build()) return vodClient } func main() { vodClient := ObsStockTaskDemoGetVodClient() request := vodModel.CreateTakeOverTaskRequest{} body := vodModel.CreateTakeOverTaskReq{} body.Object = "{objectKey}" // 某具体文件路径或某文件夹下所有文件 // List<String> listbodySuffix = new ArrayList<>(); // listbodySuffix.add("suffix"); 文件名后缀,全桶转存时选择 // body.withSuffix(listbodySuffix); createTakeOverTaskReqHostTypeParam := int32(0) body.HostType = &createTakeOverTaskReqHostTypeParam // 0表示存在点播桶,1表示存在租户桶 // body.withWorkflowName("workflowName"); createTakeOverTaskReqTemplateGroupNameParam := "{templateName}" body.TemplateGroupName = &createTakeOverTaskReqTemplateGroupNameParam // 转码模板名称 body.Bucket = "{bucketName}" request.Body = &body response, err := vodClient.CreateTakeOverTask(&request) if err != nil { fmt.Println(err) return } fmt.Println(response.String()) }

4.参考

更多信息请参考APIExplorer

5.修订记录

发布日期 文档版本 修订说明
2021-12-10 1.0 文档首次发布