github.com/NaverCloudPlatform/ncloud-sdk-go-v2@v1.6.13/ncloud/credentials/env_provider.go (about) 1 package credentials 2 3 import ( 4 "errors" 5 "os" 6 ) 7 8 type EnvProvider struct { 9 retrieved bool 10 } 11 12 func (p *EnvProvider) Name() string { 13 return "EnvProvider" 14 } 15 16 // Retrieve retrieves the keys from the environment. 17 func (p *EnvProvider) Retrieve() (Value, error) { 18 p.retrieved = false 19 id := os.Getenv("NCLOUD_ACCESS_KEY_ID") 20 if id == "" { 21 id = os.Getenv("NCLOUD_ACCESS_KEY") 22 } 23 24 secret := os.Getenv("NCLOUD_SECRET_ACCESS_KEY") 25 if secret == "" { 26 secret = os.Getenv("NCLOUD_SECRET_KEY") 27 } 28 29 if id == "" { 30 return Value{}, errors.New("NCLOUD_ACCESS_KEY_ID or NCLOUD_ACCESS_KEY not found in environment") 31 } 32 33 if secret == "" { 34 return Value{}, errors.New("NCLOUD_SECRET_ACCESS_KEY or NCLOUD_SECRET_KEY not found in environment") 35 } 36 37 p.retrieved = true 38 return Value{ 39 AccessKey: id, 40 SecretKey: secret, 41 }, nil 42 } 43 44 // IsExpired returns if the credentials have been retrieved. 45 func (p *EnvProvider) IsExpired() bool { 46 return !p.retrieved 47 }