Go SDK
下载地址
IMM Service 的 Go SDK 让开发人员可以非常方便地使用 Go 操作阿里云智能媒体管理服务。 已经开源到github。
操作步骤
为快速开始使用 IMM Service Go SDK,请按照如下步骤进行。
步骤 1 创建阿里云账号
具体方法请参考 阿里云账号注册流程。
为了更好地使用阿里云服务,建议尽快完成实名认证,否则部分阿里云服务将无法使用。具体实名认证流程,请参考 这里。
步骤 2 获取阿里云访问密钥
为了使用 IMM Service Go SDK,您必须申请阿里云的 访问密钥。
登录阿里云 密钥管理页面。选择一对用于 SDK 的访问密钥对。如果没有,请创建一对新访问密钥,且保证它处于启用状态。有关如何创建访问密钥,参见 创建访问密钥。
该密钥对会在下面的步骤使用,且需要保管好,不能对外泄露。另外,您可以参考 SDK 配置了解更多 SDK 如何使用访问密钥的信息。
步骤 3 创建项目
可以使用 Go SDK 创建,也可以在控制台上创建好项目(Project)。有关如何创建 Project ,参见 创建项目 。
步骤 4 安装 Imm Service 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
忽略该错误。
步骤 5 使用 Go SDK
以下这个代码示例展示了调用阿里云 Go SDK 的3个主要步骤:
- 创建 Client 实例。在创建 Client 实例时,您需要获取 Region ID、AccessKey ID 和 AccessKey Secret。
- 创建 API 请求并设置参数。
- 发起请求并处理应答或异常。
下面的 demo 以文档转换为例,展示了如何使用 Go SDK
5.1 调用请求
package main
import (
"fmt"
"time"
"github.com/aliyun/alibaba-cloud-sdk-go/services/imm"
)
func main() {
// Create an IMM client
immClient, err := imm.NewClientWithAccessKey(
"cn-shanghai", // Your Region ID
"xxxxxxxxxxx", // Your AccessKey ID
"xxxxxxxxxxx") // Your AccessKey Secret
if err != nil {
// Handle exceptions
panic(err)
}
//项目名称,请确保您已经创建该项目
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
}
}
}
5.2 文档转换任务返回状态
Running 状态结果返回如下:
{
"NotifyTopicName": "",
"FailDetail": {
"Code": ""
},
"TaskId": "ee52a217-234a-4922-8bd5-fcce5584c0e7",
"NotifyEndpoint": "",
"PageCount": 0,
"Status": "Running",
"TgtType": "png",
"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": "png",
"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": "png",
"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"
}
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。
评论