本文介绍如何安装和快速使用智能媒体管理Go SDK。
前提条件
- 已下载并安装Go的开发环境。
- 已创建并获取Access Key。具体操作,请参见获取AccessKey。
- 已开通OSS服务、创建存储空间并上传文件到存储空间。具体操作,请参见OSS控制台使用流程。
- 已开通智能媒体管理服务。具体操作,请参见开通产品。
注意 目前在华东1(杭州)和华东2(上海)地域中,您也可以通过调用OpenImmService接口开通智能媒体管理服务。
- 已创建所需类型的项目。具体操作,请参见创建项目。
快速使用
使用智能媒体管理Go SDK的操作步骤如下:
- 安装智能媒体管理Go SDK。
执行如下命令安装智能媒体管理Go SDK。
Go SDK在GitHub中的路径请参见Go SDK。
go get github.com/aliyun/alibaba-cloud-sdk-go
安装过程中出现如下错误时,请忽略该错误。can't load package: package github.com/aliyun/alibaba-cloud-sdk-go: no Go files in /Users/zouyongbo/Projects/go-deps/src/github.com/aliyun/alibaba-cloud-sdk-go
- 开始一个Go项目。
使用Go SDK的主要步骤如下:
- 创建Client实例。
在创建Client实例时,您需要获取并配置Region ID、AccessKey ID和AccessKey Secret。
- 创建API请求并设置参数。
- 发起请求并处理应答或异常。
如下示例以在华东1(杭州)地域中创建文档转换任务为例说明。
package main import ( "fmt" "time" "github.com/aliyun/alibaba-cloud-sdk-go/services/imm" ) func main() { //初始化IMM客户端。 immClient, err := imm.NewClientWithAccessKey( "cn-hangzhou", //项目所在地域ID。 "your_access_key_id", //RAM用户的AccessKey ID。 "your_access_key_secret") //RAM用户的AccessKey Secret。 if err != nil { // Handle exceptions panic(err) } //项目名称。请确保已创建该项目且项目类型为文档标准型(DocStarter)。 projectName := "imm-go-sdk-doc-demo" //创建文档转换任务。 req2 := imm.CreateCreateOfficeConversionTaskRequest() req2.Project = projectName req2.SrcUri = "oss://your-bucket-name/your-path/your-doc.doc" req2.TgtType = "vector" req2.TgtUri = "oss://your-bucket-name/your-path/your-doc-output" response2, err := immClient.CreateOfficeConversionTask(req2) if err != nil { //Handle exceptions panic(err) } fmt.Println(response2) //等待任务完成。 maxGetCount := 30 getInternval := time.Second getCount := 0 req3 := imm.CreateGetOfficeConversionTaskRequest() req3.Project = projectName req3.TaskId = response2.TaskId for { time.Sleep(getInternval) response3, err := immClient.GetOfficeConversionTask(req3) if err != nil { //Handle exceptions panic(err) } fmt.Println(response3) if response3.Status != "Running" { break } getCount++ if getCount >= maxGetCount { fmt.Println("OfficeConversion Timeout for 30 seconds") break } } }
当文档转换任务的执行状态为Running时,返回结果如下:{ "NotifyTopicName": "", "FailDetail": { "Code": "" }, "TaskId": "ee52a217-234a-4922-8bd5-fcce5584c0e7", "NotifyEndpoint": "", "PageCount": 0, "Status": "Running", "TgtType": "vector", "FinishTime": "", "CreateTime": "2018-07-21T15:37:28.539Z", "RequestId": "4153D465-45D3-4457-A273-DED40505CAD5", "SrcUri": "oss://your-bucket-name/your-path/your-doc.doc", "Percent": 0, "TgtUri": "oss://your-bucket-name/your-path/your-doc-output" }
当文档转换任务的执行状态为Finished时,返回结果如下:{ "NotifyTopicName": "", "FailDetail": { "Code": "NoError" }, "TaskId": "ee52a217-234a-4922-8bd5-fcce5584c0e7", "NotifyEndpoint": "", "PageCount": 32, "Status": "Finished", "TgtType": "vector", "FinishTime": "2018-07-21T15:37:32.419Z", "CreateTime": "2018-07-21T15:37:28.539Z", "RequestId": "CACA2EC6-98FC-457A-810F-4035DD32A43B", "SrcUri": "oss://your-bucket-name/your-path/your-doc.doc", "Percent": 100, "TgtUri": "oss://your-bucket-name/your-path/your-doc-output" }
当文档转换任务的执行状态为Failed时,返回结果如下:{ "NotifyTopicName": "", "FailDetail": { "Code": "FailedToDownloadSrcFile" }, "TaskId": "1c8d3a19-9f28-433f-be13-8e42b8851ef3", "NotifyEndpoint": "", "PageCount": 0, "Status": "Failed", "TgtType": "vector", "FinishTime": "", "CreateTime": "2018-07-21T15:47:53.865Z", "RequestId": "453B7362-D404-47A3-88A7-BE14F494812C", "SrcUri": "oss://your-bucket-name/your-path/your-doc.doc", "Percent": 0, "TgtUri": "oss://your-bucket-name/your-path/your-doc-output" }
- 创建Client实例。