in credentials/providers/profile.go [122:165]
func (provider *ProfileCredentialsProvider) GetCredentials() (cc *Credentials, err error) {
if provider.innerProvider == nil {
sharedCfgPath := os.Getenv("ALIBABA_CLOUD_CREDENTIALS_FILE")
if sharedCfgPath == "" {
homeDir := getHomePath()
if homeDir == "" {
err = fmt.Errorf("cannot found home dir")
return
}
sharedCfgPath = path.Join(homeDir, ".alibabacloud/credentials")
}
ini, err1 := ini.Load(sharedCfgPath)
if err1 != nil {
err = errors.New("ERROR: Can not open file" + err1.Error())
return
}
provider.innerProvider, err = provider.getCredentialsProvider(ini)
if err != nil {
return
}
}
innerCC, err := provider.innerProvider.GetCredentials()
if err != nil {
return
}
providerName := innerCC.ProviderName
if providerName == "" {
providerName = provider.innerProvider.GetProviderName()
}
cc = &Credentials{
AccessKeyId: innerCC.AccessKeyId,
AccessKeySecret: innerCC.AccessKeySecret,
SecurityToken: innerCC.SecurityToken,
ProviderName: fmt.Sprintf("%s/%s", provider.GetProviderName(), providerName),
}
return
}