1# AliyunGo: Go SDK for Aliyun Services
2
3[![Build Status](https://travis-ci.org/denverdino/aliyungo.svg?branch=master)](https://travis-ci.org/denverdino/aliyungo) [![CircleCI](https://circleci.com/gh/denverdino/aliyungo.svg?style=svg)](https://circleci.com/gh/denverdino/aliyungo) [![Go Report Card](https://goreportcard.com/badge/github.com/denverdino/aliyungo)](https://goreportcard.com/report/github.com/denverdino/aliyungo)
4
5This is an unofficial Go SDK for Aliyun services. You are welcome for contribution.
6
7The official SDK for Aliyun services is published. Please visit https://github.com/aliyun/alibaba-cloud-sdk-go for details
8
9## Package Structure
10
11* cdn: [Content Delivery Network](https://help.aliyun.com/document_detail/27101.html)
12* cms: [Cloud Monitor Service](https://help.aliyun.com/document_detail/28615.html)
13* cs: [Container Service](https://help.aliyun.com/product/25972.html)
14* dm: [Direct Mail](https://help.aliyun.com/document_detail/29414.html)
15* dns: [DNS](https://help.aliyun.com/document_detail/dns/api-reference/summary.html)
16* ecs: [Elastic Compute Service](https://help.aliyun.com/document_detail/ecs/open-api/summary.html)
17* ess: [Auto Scaling](https://help.aliyun.com/document_detail/25857.html)
18* mns: [Message Service](https://help.aliyun.com/document_detail/27414.html)
19* mq: [Message Queue](https://help.aliyun.com/document_detail/29532.html)
20* nas: [Network Attached Storage](https://help.aliyun.com/document_detail/27518.html)
21* opensearch: [OpenSearch](https://help.aliyun.com/document_detail/29118.html)
22* oss: [Open Storage Service](https://help.aliyun.com/document_detail/oss/api-reference/abstract.html)
23* push: [Cloud Mobile Push](https://help.aliyun.com/document_detail/30049.html)
24* rds: [Relational Database Service](https://help.aliyun.com/document_detail/26226.html)
25* ram: [Resource Access Management](https://help.aliyun.com/document_detail/ram/ram-api-reference/intro/intro.html)
26* slb: [Server Load Balancer](https://help.aliyun.com/document_detail/slb/api-reference/brief-introduction.html)
27* sls: [Logging Service](https://help.aliyun.com/document_detail/sls/api/overview.html)
28* sms: [Short Message Service](https://help.aliyun.com/product/44282.html)
29* sts: [Security Token Service](https://help.aliyun.com/document_detail/28756.html)
30* common: Common libary of Aliyun Go SDK
31* util: Utility helpers
32
33## Quick Start
34
35```go
36package main
37
38import (
39  "fmt"
40
41	"github.com/denverdino/aliyungo/ecs"
42)
43
44const ACCESS_KEY_ID = "<YOUR_ID>"
45const ACCESS_KEY_SECRET = "<****>"
46
47func main() {
48	client := ecs.NewClient(ACCESS_KEY_ID, ACCESS_KEY_SECRET)
49	fmt.Print(client.DescribeRegions())
50}
51
52```
53
54## Documentation
55
56  * CDN: [https://godoc.org/github.com/denverdino/aliyungo/cdn](https://godoc.org/github.com/denverdino/aliyungo/cdn)[![GoDoc](https://godoc.org/github.com/denverdino/aliyungo/cdn?status.svg)](https://godoc.org/github.com/denverdino/aliyungo/cdn)
57  * CMS: [https://godoc.org/github.com/denverdino/aliyungo/cms](https://godoc.org/github.com/denverdino/aliyungo/cms) [![GoDoc](https://godoc.org/github.com/denverdino/aliyungo/cms?status.svg)](https://godoc.org/github.com/denverdino/aliyungo/cms)
58  * CS: [https://godoc.org/github.com/denverdino/aliyungo/cs](https://godoc.org/github.com/denverdino/aliyungo/cs) [![GoDoc](https://godoc.org/github.com/denverdino/aliyungo/cs?status.svg)](https://godoc.org/github.com/denverdino/aliyungo/cs)
59  * DM: [https://godoc.org/github.com/denverdino/aliyungo/dm](https://godoc.org/github.com/denverdino/aliyungo/dm) [![GoDoc](https://godoc.org/github.com/denverdino/aliyungo/dm?status.svg)](https://godoc.org/github.com/denverdino/aliyungo/dm)
60  * DNS: [https://godoc.org/github.com/denverdino/aliyungo/dns](https://godoc.org/github.com/denverdino/aliyungo/dns) [![GoDoc](https://godoc.org/github.com/denverdino/aliyungo/dns?status.svg)](https://godoc.org/github.com/denverdino/aliyungo/dns)
61  * ECS: [https://godoc.org/github.com/denverdino/aliyungo/ecs](https://godoc.org/github.com/denverdino/aliyungo/ecs) [![GoDoc](https://godoc.org/github.com/denverdino/aliyungo/ecs?status.svg)](https://godoc.org/github.com/denverdino/aliyungo/ecs)
62  * ESS: [https://godoc.org/github.com/denverdino/aliyungo/ess](https://godoc.org/github.com/denverdino/aliyungo/ess)[![GoDoc](https://godoc.org/github.com/denverdino/aliyungo/ess?status.svg)](https://godoc.org/github.com/denverdino/aliyungo/ess)
63  * MNS: [https://godoc.org/github.com/denverdino/aliyungo/mns](https://godoc.org/github.com/denverdino/aliyungo/mns)[![GoDoc](https://godoc.org/github.com/denverdino/aliyungo/mns?status.svg)](https://godoc.org/github.com/denverdino/aliyungo/mns)
64  * MQ: [https://godoc.org/github.com/denverdino/aliyungo/mq](https://godoc.org/github.com/denverdino/aliyungo/mq) [![GoDoc](https://godoc.org/github.com/denverdino/aliyungo/mq?status.svg)](https://godoc.org/github.com/denverdino/aliyungo/mq)
65  * NAS: [https://godoc.org/github.com/denverdino/aliyungo/nas](https://godoc.org/github.com/denverdino/aliyungo/nas) [![GoDoc](https://godoc.org/github.com/denverdino/aliyungo/nas?status.svg)](https://godoc.org/github.com/denverdino/aliyungo/nas)
66  * OPENSEARCH: [https://godoc.org/github.com/denverdino/aliyungo/opensearch](https://godoc.org/github.com/denverdino/aliyungo/opensearch) [![GoDoc](https://godoc.org/github.com/denverdino/aliyungo/opensearch?status.svg)](https://godoc.org/github.com/denverdino/aliyungo/opensearch)
67  * OSS: [https://godoc.org/github.com/denverdino/aliyungo/oss](https://godoc.org/github.com/denverdino/aliyungo/oss) [![GoDoc](https://godoc.org/github.com/denverdino/aliyungo/oss?status.svg)](https://godoc.org/github.com/denverdino/aliyungo/oss)
68  * PUSH: [https://godoc.org/github.com/denverdino/aliyungo/push](https://godoc.org/github.com/denverdino/aliyungo/push) [![GoDoc](https://godoc.org/github.com/denverdino/aliyungo/push?status.svg)](https://godoc.org/github.com/denverdino/aliyungo/push)
69  * RAM: [https://godoc.org/github.com/denverdino/aliyungo/ram](https://godoc.org/github.com/denverdino/aliyungo/ram) [![GoDoc](https://godoc.org/github.com/denverdino/aliyungo/ram?status.svg)](https://godoc.org/github.com/denverdino/aliyungo/ram)
70  * RDS: [https://godoc.org/github.com/denverdino/aliyungo/rds](https://godoc.org/github.com/denverdino/aliyungo/rds) [![GoDoc](https://godoc.org/github.com/denverdino/aliyungo/rds?status.svg)](https://godoc.org/github.com/denverdino/aliyungo/rds)
71  * SLB: [https://godoc.org/github.com/denverdino/aliyungo/slb](https://godoc.org/github.com/denverdino/aliyungo/slb) [![GoDoc](https://godoc.org/github.com/denverdino/aliyungo/slb?status.svg)](https://godoc.org/github.com/denverdino/aliyungo/slb)
72  * SLS: [https://godoc.org/github.com/denverdino/aliyungo/sls](https://godoc.org/github.com/denverdino/aliyungo/sls) [![GoDoc](https://godoc.org/github.com/denverdino/aliyungo/sls?status.svg)](https://godoc.org/github.com/denverdino/aliyungo/sls)
73  * SMS: [https://godoc.org/github.com/denverdino/aliyungo/sms](https://godoc.org/github.com/denverdino/aliyungo/sms) [![GoDoc](https://godoc.org/github.com/denverdino/aliyungo/sms?status.svg)](https://godoc.org/github.com/denverdino/aliyungo/sms)
74  * STS: [https://godoc.org/github.com/denverdino/aliyungo/sts](https://godoc.org/github.com/denverdino/aliyungo/sts) [![GoDoc](https://godoc.org/github.com/denverdino/aliyungo/sts?status.svg)](https://godoc.org/github.com/denverdino/aliyungo/sts)
75
76## Build and Install
77
78go get:
79
80```sh
81go get github.com/denverdino/aliyungo
82```
83
84## Test ECS
85
86Modify "ecs/config_test.go"
87
88```sh
89	TestAccessKeyId     = "MY_ACCESS_KEY_ID"
90	TestAccessKeySecret = "MY_ACCESS_KEY_ID"
91	TestInstanceId      = "MY_INSTANCE_ID"
92	TestIAmRich         = false
93```
94
95* TestAccessKeyId: the Access Key Id
96* TestAccessKeySecret: the Access Key Secret.
97* TestInstanceId: the existing instance id for testing. It will be stopped and restarted during testing.
98* TestIAmRich(Optional): If it is set to true, it will perform tests to create virtual machines and disks under your account. And you will pay the bill. :-)
99
100Under "ecs" and run
101
102```sh
103go test
104```
105
106## Test OSS
107
108Modify "oss/config_test.go"
109
110```sh
111	TestAccessKeyId     = "MY_ACCESS_KEY_ID"
112	TestAccessKeySecret = "MY_ACCESS_KEY_ID"
113	TestRegion          = oss.Beijing
114	TestBucket          = "denverdino"
115```
116
117* TestAccessKeyId: the Access Key Id
118* TestAccessKeySecret: the Access Key Secret.
119* TestRegion: the region of OSS for testing
120* TestBucket: the bucket name for testing
121
122Under "oss" and run
123
124```sh
125go test
126```
127
128## Contributors
129
130  * Li Yi (denverdino@gmail.com)
131  * Boshi Lian (farmer1992@gmail.com)
132  * Yu Zhou (oscarrr110@gmail.com)
133  * Yufei Zhang
134  * linuxlikerqq
135  * Changhai Yan
136  * Jizhong Jiang (jiangjizhong@gmail.com)
137  * Kent Wang (pragkent@gmail.com)
138  * ringtail
139  * aiden0z (aiden0xz@gmail.com)
140  * jimmycmh
141  * menglingwei
142  * mingang.he (dustgle@gmail.com)
143  * Young Chen (chainone@gmail.com)
144  * johnzeng
145  * spacexnice (445436286@qq.com)
146  * xiaoheihero
147  * hmgle (dustgle@gmail.com)
148  * jzwlqx (jiangjizhong@gmail.com)
149  * Linhua Tan (toolchainX@gmail.com)
150  * Plutonist (p@vecsight.com)
151  * Bin Liu
152  * wangyue
153  * demonwy
154  * yarous224
155  * yufeizyf (xazyf9111@sina.cn)
156  * keontang (ikeontang@gmail.com)
157  * Cholerae Hu (me@cholerae.com)
158  * Zach Bergh (berghzach@gmail.com)
159  * Bingshen Wang
160  * xiaozhu36
161  * Russell (yufeiwu@gmail.com)
162  * zhuzhih2017
163  * cheyang
164  * Hobo Chen
165  * Shuwei Yin
166  * Xujin Zheng (xujinzheng@gmail.com)
167  * Dino Lai (dinos80152@gmail.com)
168
169## License
170
171This project is licensed under the Apache License, Version 2.0. See [LICENSE](https://github.com/denverdino/aliyungo/blob/master/LICENSE.txt) for the full license text.
172
173## Related projects
174
175  * Aliyun ECS driver for Docker Machine: [Pull request](https://github.com/docker/machine/pull/1182)
176
177  * Aliyun OSS driver for Docker Registry V2: [Pull request](https://github.com/docker/distribution/pull/514)
178
179## References
180
181The GO API design of OSS refer the implementation from [https://github.com/AdRoll/goamz](https://github.com/AdRoll)
182