in sdk/client.go [164:193]
func (client *Client) InitWithOptions(regionId string, config *Config, credential auth.Credential) (err error) {
if regionId != "" {
match, _ := regexp.MatchString("^[a-zA-Z0-9_-]+$", regionId)
if !match {
return fmt.Errorf("regionId contains invalid characters")
}
}
client.regionId = regionId
client.config = config
client.httpClient = &http.Client{}
client.isCloseTrace = false
if config.Transport != nil {
client.httpClient.Transport = config.Transport
} else if config.HttpTransport != nil {
client.httpClient.Transport = config.HttpTransport
}
if config.Timeout > 0 {
client.httpClient.Timeout = config.Timeout
}
if config.EnableAsync {
client.EnableAsync(config.GoRoutinePoolSize, config.MaxTaskQueueSize)
}
client.credentialsProvider, err = auth.ToCredentialsProvider(credential)
return
}