1# AliyunGo: Go SDK for Aliyun Services
2
3This is an unofficial Go SDK for Aliyun Services. You are welcome for contribution.
4
5
6## Package Structure
7
8*  ecs: [Elastic Compute Service](https://help.aliyun.com/document_detail/ecs/open-api/summary.html)
9*  oss: [Open Storage Service](https://help.aliyun.com/document_detail/oss/api-reference/abstract.html)
10*  slb: [Server Load Balancer](https://help.aliyun.com/document_detail/slb/api-reference/brief-introduction.html)
11*  dns: [DNS](https://help.aliyun.com/document_detail/dns/api-reference/summary.html)
12*  sls: [Logging Service](https://help.aliyun.com/document_detail/sls/api/overview.html)
13*  ram: [Resource Access Management](https://help.aliyun.com/document_detail/ram/ram-api-reference/intro/intro.html)
14*  rds: [Relational Database Service](https://help.aliyun.com/document_detail/26226.html)
15*  cms: [Cloud Monitor Service](https://help.aliyun.com/document_detail/28615.html)
16*  sts: [Security Token Service](https://help.aliyun.com/document_detail/28756.html)
17*  dm: [Direct Mail]
18(https://help.aliyun.com/document_detail/29414.html)
19*  common: Common libary of Aliyun Go SDK
20*  util: Utility helpers
21
22
23
24## Quick Start
25
26```go
27package main
28
29import (
30	"fmt"
31
32	"github.com/denverdino/aliyungo/ecs"
33)
34
35const ACCESS_KEY_ID = "<YOUR_ID>"
36const ACCESS_KEY_SECRET = "<****>"
37
38func main() {
39	client := ecs.NewClient(ACCESS_KEY_ID, ACCESS_KEY_SECRET)
40	fmt.Print(client.DescribeRegions())
41}
42
43```
44
45## Documentation
46
47  *  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)
48  *  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)
49  *  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)
50  *  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)
51  *  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)
52  *  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)
53  *  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)
54  *  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)
55  *  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)
56  *  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)
57
58## Build and Install
59
60go get:
61
62```sh
63go get github.com/denverdino/aliyungo
64```
65
66
67## Test ECS
68
69Modify "ecs/config_test.go"
70
71```sh
72	TestAccessKeyId     = "MY_ACCESS_KEY_ID"
73	TestAccessKeySecret = "MY_ACCESS_KEY_ID"
74	TestInstanceId      = "MY_INSTANCE_ID"
75	TestIAmRich         = false
76```
77
78*  TestAccessKeyId: the Access Key Id
79*  TestAccessKeySecret: the Access Key Secret.
80*  TestInstanceId: the existing instance id for testing. It will be stopped and restarted during testing.
81*  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. :-)
82
83Under "ecs" and run
84
85```sh
86go test
87```
88
89## Test OSS
90
91Modify "oss/config_test.go"
92
93```sh
94	TestAccessKeyId     = "MY_ACCESS_KEY_ID"
95	TestAccessKeySecret = "MY_ACCESS_KEY_ID"
96	TestRegion          = oss.Beijing
97	TestBucket          = "denverdino"
98```
99
100*  TestAccessKeyId: the Access Key Id
101*  TestAccessKeySecret: the Access Key Secret.
102*  TestRegion: the region of OSS for testing
103*  TestBucket: the bucket name for testing
104
105
106Under "oss" and run
107
108```sh
109go test
110```
111
112## Contributors
113
114  * Li Yi (denverdino@gmail.com)
115  * tgic (farmer1992@gmail.com)
116  * Yu Zhou (oscarrr110@gmail.com)
117  * Yufei Zhang
118  * linuxlikerqq
119  * Changhai Yan (changhai.ych@alibaba-inc.com)
120  * Jizhong Jiang (jiangjizhong@gmail.com)
121  * Kent Wang (pragkent@gmail.com)
122  * ringtail (zhongwei.lzw@alibaba-inc.com)
123  * aiden0z (aiden0xz@gmail.com)
124  * jimmycmh
125  * menglingwei
126  * mingang.he (dustgle@gmail.com)
127  * chainone (chainone@gmail.com)
128  * johnzeng
129
130## License
131This 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.
132
133
134## Related projects
135
136  * Aliyun ECS driver for Docker Machine: [Pull request](https://github.com/docker/machine/pull/1182)
137
138  * Aliyun OSS driver for Docker Registry V2: [Pull request](https://github.com/docker/distribution/pull/514)
139
140
141## References
142
143The GO API design of OSS refer the implementation from [https://github.com/AdRoll/goamz](https://github.com/AdRoll)
144