github.com/rudderlabs/rudder-go-kit@v0.30.0/filemanager/config.go (about) 1 package filemanager 2 3 import ( 4 "os" 5 6 "github.com/rudderlabs/rudder-go-kit/config" 7 ) 8 9 type ProviderConfigOpts struct { 10 Provider string 11 Bucket string 12 Prefix string 13 Config *config.Config 14 ExternalIDSupplier func() string 15 } 16 17 func GetProviderConfigFromEnv(opts ProviderConfigOpts) map[string]interface{} { 18 if opts.Config == nil { 19 opts.Config = config.Default 20 } 21 if opts.ExternalIDSupplier == nil { 22 opts.ExternalIDSupplier = func() string { return "" } 23 } 24 config := opts.Config 25 providerConfig := make(map[string]interface{}) 26 switch opts.Provider { 27 case "S3": 28 providerConfig["bucketName"] = opts.Bucket 29 providerConfig["prefix"] = opts.Prefix 30 providerConfig["accessKeyID"] = config.GetString("AWS_ACCESS_KEY_ID", "") 31 providerConfig["accessKey"] = config.GetString("AWS_SECRET_ACCESS_KEY", "") 32 providerConfig["enableSSE"] = config.GetBool("AWS_ENABLE_SSE", false) 33 providerConfig["regionHint"] = config.GetString("AWS_S3_REGION_HINT", "us-east-1") 34 providerConfig["iamRoleArn"] = config.GetString("BACKUP_IAM_ROLE_ARN", "") 35 if providerConfig["iamRoleArn"] != "" { 36 providerConfig["externalID"] = opts.ExternalIDSupplier() 37 } 38 case "GCS": 39 providerConfig["bucketName"] = opts.Bucket 40 providerConfig["prefix"] = opts.Prefix 41 credentials, err := os.ReadFile(config.GetString("GOOGLE_APPLICATION_CREDENTIALS", "")) 42 if err == nil { 43 providerConfig["credentials"] = string(credentials) 44 } 45 case "AZURE_BLOB": 46 providerConfig["containerName"] = opts.Bucket 47 providerConfig["prefix"] = opts.Prefix 48 providerConfig["accountName"] = config.GetString("AZURE_STORAGE_ACCOUNT", "") 49 providerConfig["accountKey"] = config.GetString("AZURE_STORAGE_ACCESS_KEY", "") 50 case "MINIO": 51 providerConfig["bucketName"] = opts.Bucket 52 providerConfig["prefix"] = opts.Prefix 53 providerConfig["endPoint"] = config.GetString("MINIO_ENDPOINT", "localhost:9000") 54 providerConfig["accessKeyID"] = config.GetString("MINIO_ACCESS_KEY_ID", "minioadmin") 55 providerConfig["secretAccessKey"] = config.GetString("MINIO_SECRET_ACCESS_KEY", "minioadmin") 56 providerConfig["useSSL"] = config.GetBool("MINIO_SSL", false) 57 case "DIGITAL_OCEAN_SPACES": 58 providerConfig["bucketName"] = opts.Bucket 59 providerConfig["prefix"] = opts.Prefix 60 providerConfig["endPoint"] = config.GetString("DO_SPACES_ENDPOINT", "") 61 providerConfig["accessKeyID"] = config.GetString("DO_SPACES_ACCESS_KEY_ID", "") 62 providerConfig["accessKey"] = config.GetString("DO_SPACES_SECRET_ACCESS_KEY", "") 63 } 64 65 return providerConfig 66 }