Skip to content

Latest commit

 

History

History
123 lines (106 loc) · 4.59 KB

Usage-CN.md

File metadata and controls

123 lines (106 loc) · 4.59 KB

English | 简体中文

Go SDK 使用说明

要求

  • 您需要确保本地安装的 go 环境版本大于 1.12.0.

快速使用

在您开始之前,您需要注册阿里云帐户并获取您的凭证。 SDK 使用 credentials-go 来管理凭证。

使用示例

import (
	"fmt"
	"strings"

	facebody "github.com/alibabacloud-go/Facebody-20191230/client"
	rpc "github.com/alibabacloud-go/tea-rpc/client"
	util "github.com/alibabacloud-go/tea-utils/service"
	credential "github.com/aliyun/credentials-go/credentials"
)

func main() {
	config := new(rpc.Config)

	// 使用 ak 初始化 config
	config.SetAccessKeyId("ACCESS_KEY_ID").
		SetAccessKeySecret("ACCESS_KEY_SECRET").
		SetRegionId("cn-hangzhou").
		SetEndpoint("facebody.cn-hangzhou.aliyuncs.com").
		SetType("access_key")

	// 使用 credential 初始化 config
	credentialConfig := &credential.Config{
		AccessKeyId:     config.AccessKeyId,
		Type:            config.Type,
		AccessKeySecret: config.AccessKeySecret,
		SecurityToken:   config.SecurityToken,
	}
	// 关于 credenial 的创建可以参考 https://github.com/aliyun/credentials-go/blob/master/README-CN.md
	credential := credential.NewCredential(credentialConfig)
	config.SetCredential(credential).
		SetEndpoint("facebody.cn-hangzhou.aliyuncs.com")

	// 创建客户端
	client, err := facebody.NewClient(config)
	if err != nil {
		panic(err)
	}

	// 初始化 runtimeObject
	runtimeObject := new(util.RuntimeOptions).SetAutoretry(false).
		SetMaxIdleConns(3)

	// 初始化 request
	request := new(facebody.DetectFaceRequest)

	// 调用 api
	resp, err := client.DetectFace(request, runtimeObject)
	if err != nil {
		fmt.Println(err.Error())
	}
	fmt.Println(resp)

	// 使用文件上传
	uploadRequest := new(facebody.DetectFaceAdvanceRequest).SetImageURLObject(strings.NewReader("demo"))

	// 调用 api
	uploadResp, err := client.DetectFaceAdvance(uploadRequest, runtimeObject)
	if err != nil {
		fmt.Println(err.Error())
	}
	fmt.Println(uploadResp)
}

参数说明

type Config struct {
	AccessKeyId          *string                // AccessKey Id
	AccessKeySecret      *string                // AccessKey Secret
	Type                 *string                // 凭证类型,如有疑问请参考 https://github.com/aliyun/credentials-go/blob/master/README-CN.md#%E5%87%AD%E8%AF%81%E7%B1%BB%E5%9E%8B
	SecurityToken        *string                // Security Token
	Endpoint             *string                // endpoint
	Protocol             *string                // 请求协议
	Credential           credential.Credential  // 凭证,如有疑问请参考:https://github.com/aliyun/credentials-go/blob/master/README-CN.md
	RegionId             *string                // 区域
	Network              *string                // 网络类型。例:inner
	Suffix               *string                // endpoint 后缀
	UserAgent            *string                // UserAgent
	ReadTimeout          *int                   // 读超时
	ConnectTimeout       *int                   // 连接超时
	LocalAddr            *string                // 本地网卡 ip
	HttpProxy            *string                // http 的代理
	HttpsProxy           *string                // https 的代理
	NoProxy              *string                // 代理白名单
	Socks5Proxy          *string                // socks5 代理
	Socks5NetWork        *string                // socks5 代理协议
	MaxIdleConns         *int                   // 最大连接数
	EndpointType         *string                // 域名类型:internal,accelerate 或不填
	OpenPlatformEndpoint *string                // 文件上传时授权使用的域名(目前暂不需要填写)
}

type RuntimeOptions struct {
	Autoretry        *bool       // 是否开启重试
	IgnoreSSL        *bool       // 是否忽略 SSL 校验
	MaxAttempts      *int        // 最大重试次数, 默认为 3
	BackoffPolicy    *string     // 重试休眠策略,默认为 no
	BackoffPeriod    *int        // 重试休眠时间, 默认为 1
	ReadTimeout      *int        // 读超时
	ConnectTimeout   *int        // 连接超时
	LocalAddr        *string     // 本地网卡 ip
	HttpProxy        *string     // http 的代理
	HttpsProxy       *string     // https 的代理
	NoProxy          *string     // 代理白名单
	MaxIdleConns     *int        // 最大连接数
	Socks5Proxy      *string     // socks5 代理
	Socks5NetWork    *string     // socks5 代理协议
}