static_ak.go 1.7 KB

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