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  }