env.go 746 B

123456789101112131415161718192021222324252627282930
  1. package provider
  2. import (
  3. "errors"
  4. "os"
  5. "github.com/aliyun/alibaba-cloud-sdk-go/sdk/auth/credentials"
  6. "github.com/aliyun/alibaba-cloud-sdk-go/sdk/auth"
  7. )
  8. type EnvProvider struct{}
  9. var ProviderEnv = new(EnvProvider)
  10. func NewEnvProvider() Provider {
  11. return &EnvProvider{}
  12. }
  13. func (p *EnvProvider) Resolve() (auth.Credential, error) {
  14. accessKeyID, ok1 := os.LookupEnv(ENVAccessKeyID)
  15. accessKeySecret, ok2 := os.LookupEnv(ENVAccessKeySecret)
  16. if !ok1 || !ok2 {
  17. return nil, nil
  18. }
  19. if accessKeyID == "" || accessKeySecret == "" {
  20. return nil, errors.New("Environmental variable (ALIBABACLOUD_ACCESS_KEY_ID or ALIBABACLOUD_ACCESS_KEY_SECRET) is empty")
  21. }
  22. return credentials.NewAccessKeyCredential(accessKeyID, accessKeySecret), nil
  23. }