credentials/providers/static_ak.go (54 lines of code) (raw):

package providers import ( "errors" "os" ) type StaticAKCredentialsProvider struct { accessKeyId string accessKeySecret string } type StaticAKCredentialsProviderBuilder struct { provider *StaticAKCredentialsProvider } func NewStaticAKCredentialsProviderBuilder() *StaticAKCredentialsProviderBuilder { return &StaticAKCredentialsProviderBuilder{ provider: &StaticAKCredentialsProvider{}, } } func (builder *StaticAKCredentialsProviderBuilder) WithAccessKeyId(accessKeyId string) *StaticAKCredentialsProviderBuilder { builder.provider.accessKeyId = accessKeyId return builder } func (builder *StaticAKCredentialsProviderBuilder) WithAccessKeySecret(accessKeySecret string) *StaticAKCredentialsProviderBuilder { builder.provider.accessKeySecret = accessKeySecret return builder } func (builder *StaticAKCredentialsProviderBuilder) Build() (provider *StaticAKCredentialsProvider, err error) { if builder.provider.accessKeyId == "" { builder.provider.accessKeyId = os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_ID") } if builder.provider.accessKeyId == "" { err = errors.New("the access key id is empty") return } if builder.provider.accessKeySecret == "" { builder.provider.accessKeySecret = os.Getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET") } if builder.provider.accessKeySecret == "" { err = errors.New("the access key secret is empty") return } provider = builder.provider return } func (provider *StaticAKCredentialsProvider) GetCredentials() (cc *Credentials, err error) { cc = &Credentials{ AccessKeyId: provider.accessKeyId, AccessKeySecret: provider.accessKeySecret, ProviderName: provider.GetProviderName(), } return } func (provider *StaticAKCredentialsProvider) GetProviderName() string { return "static_ak" }