oss/credentials/environment_credentials_provider.go (23 lines of code) (raw):
package credentials
import (
"context"
"fmt"
"os"
)
type EnvironmentVariableCredentialsProvider struct {
}
func (s *EnvironmentVariableCredentialsProvider) GetCredentials(ctx context.Context) (Credentials, error) {
id := os.Getenv("OSS_ACCESS_KEY_ID")
secret := os.Getenv("OSS_ACCESS_KEY_SECRET")
if id == "" || secret == "" {
return Credentials{}, fmt.Errorf("access key id or access key secret is empty!")
}
return Credentials{
AccessKeyID: id,
AccessKeySecret: secret,
SecurityToken: os.Getenv("OSS_SESSION_TOKEN"),
}, nil
}
func NewEnvironmentVariableCredentialsProvider() CredentialsProvider {
return &EnvironmentVariableCredentialsProvider{}
}