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