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