智能媒体管理Go SDK如何使用? -问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文

智能媒体管理Go SDK如何使用?

小天使爱美 2020-03-31 12:53:55 126

智能媒体管理Go SDK如何使用?

Go 开发工具
分享到
取消 提交回答
全部回答(1)
  • 小天使爱美
    2020-03-31 12:54:16

    下载地址 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" } 若在使用中有疑问,请参考 FAQ,或者进入 钉钉用户群 实时交流。

    0 0
开发与运维
使用钉钉扫一扫加入圈子
+ 订阅

集结各类场景实战经验,助你开发运维畅行无忧

推荐文章
相似问题