...

Source file src/github.com/aliyun/credentials-go/credentials/env_provider.go

Documentation: github.com/aliyun/credentials-go/credentials

     1  package credentials
     2  
     3  import (
     4  	"errors"
     5  	"os"
     6  
     7  	"github.com/alibabacloud-go/tea/tea"
     8  )
     9  
    10  type envProvider struct{}
    11  
    12  var providerEnv = new(envProvider)
    13  
    14  const (
    15  	// EnvVarAccessKeyId is a name of ALIBABA_CLOUD_ACCESS_KEY_Id
    16  	EnvVarAccessKeyId    = "ALIBABA_CLOUD_ACCESS_KEY_Id"
    17  	EnvVarAccessKeyIdNew = "ALIBABA_CLOUD_ACCESS_KEY_ID"
    18  	// EnvVarAccessKeySecret is a name of ALIBABA_CLOUD_ACCESS_KEY_SECRET
    19  	EnvVarAccessKeySecret = "ALIBABA_CLOUD_ACCESS_KEY_SECRET"
    20  )
    21  
    22  func newEnvProvider() Provider {
    23  	return &envProvider{}
    24  }
    25  
    26  func (p *envProvider) resolve() (*Config, error) {
    27  	accessKeyId, ok1 := os.LookupEnv(EnvVarAccessKeyIdNew)
    28  	if !ok1 || accessKeyId == "" {
    29  		accessKeyId, ok1 = os.LookupEnv(EnvVarAccessKeyId)
    30  	}
    31  	accessKeySecret, ok2 := os.LookupEnv(EnvVarAccessKeySecret)
    32  	if !ok1 || !ok2 {
    33  		return nil, nil
    34  	}
    35  	if accessKeyId == "" {
    36  		return nil, errors.New(EnvVarAccessKeyIdNew + " or " + EnvVarAccessKeyId + " cannot be empty")
    37  	}
    38  	if accessKeySecret == "" {
    39  		return nil, errors.New(EnvVarAccessKeySecret + " cannot be empty")
    40  	}
    41  	config := &Config{
    42  		Type:            tea.String("access_key"),
    43  		AccessKeyId:     tea.String(accessKeyId),
    44  		AccessKeySecret: tea.String(accessKeySecret),
    45  	}
    46  	return config, nil
    47  }
    48  

View as plain text