github.com/NaverCloudPlatform/ncloud-sdk-go-v2@v1.6.13/ncloud/metadata/client.go (about) 1 package metadata 2 3 import ( 4 "io/ioutil" 5 "net/http" 6 "os" 7 "time" 8 ) 9 10 var endpoint = "http://169.254.169.254" 11 var basePath = "/latest/meta-data/" 12 13 type ApiClient struct { 14 client *http.Client 15 } 16 17 func NewApiClient() *ApiClient { 18 if os.Getenv("NCLOUD_METADATA_API_ENDPOINT") != "" { 19 endpoint = os.Getenv("NCLOUD_METADATA_API_ENDPOINT") 20 } 21 c := &http.Client{ 22 Timeout: 3 * time.Second, 23 } 24 return &ApiClient{client: c} 25 } 26 27 func (c ApiClient) GetMetadata(url string) (string, error) { 28 resp, err := c.client.Get(endpoint + basePath + url) 29 if err != nil { 30 return "", err 31 } 32 defer resp.Body.Close() 33 34 var respBody []byte 35 respBody, err = ioutil.ReadAll(resp.Body) 36 if err != nil { 37 return "", err 38 } 39 return string(respBody), nil 40 }