github.com/aliyun/credentials-go@v1.4.7/credentials/providers/static_ak.go (about) 1 package providers 2 3 import ( 4 "errors" 5 "os" 6 ) 7 8 type StaticAKCredentialsProvider struct { 9 accessKeyId string 10 accessKeySecret string 11 } 12 13 type StaticAKCredentialsProviderBuilder struct { 14 provider *StaticAKCredentialsProvider 15 } 16 17 func NewStaticAKCredentialsProviderBuilder() *StaticAKCredentialsProviderBuilder { 18 return &StaticAKCredentialsProviderBuilder{ 19 provider: &StaticAKCredentialsProvider{}, 20 } 21 } 22 23 func (builder *StaticAKCredentialsProviderBuilder) WithAccessKeyId(accessKeyId string) *StaticAKCredentialsProviderBuilder { 24 builder.provider.accessKeyId = accessKeyId 25 return builder 26 } 27 28 func (builder *StaticAKCredentialsProviderBuilder) WithAccessKeySecret(accessKeySecret string) *StaticAKCredentialsProviderBuilder { 29 builder.provider.accessKeySecret = accessKeySecret 30 return builder 31 } 32 33 func (builder *StaticAKCredentialsProviderBuilder) Build() (provider *StaticAKCredentialsProvider, err error) { 34 if builder.provider.accessKeyId == "" { 35 builder.provider.accessKeyId = os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_ID") 36 } 37 38 if builder.provider.accessKeyId == "" { 39 err = errors.New("the access key id is empty") 40 return 41 } 42 43 if builder.provider.accessKeySecret == "" { 44 builder.provider.accessKeySecret = os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET") 45 } 46 47 if builder.provider.accessKeySecret == "" { 48 err = errors.New("the access key secret is empty") 49 return 50 } 51 52 provider = builder.provider 53 return 54 } 55 56 func (provider *StaticAKCredentialsProvider) GetCredentials() (cc *Credentials, err error) { 57 cc = &Credentials{ 58 AccessKeyId: provider.accessKeyId, 59 AccessKeySecret: provider.accessKeySecret, 60 ProviderName: provider.GetProviderName(), 61 } 62 return 63 } 64 65 func (provider *StaticAKCredentialsProvider) GetProviderName() string { 66 return "static_ak" 67 }