78 lines
2.5 KiB
Go
78 lines
2.5 KiB
Go
|
package oss
|
||
|
|
||
|
import (
|
||
|
"time"
|
||
|
)
|
||
|
|
||
|
// HTTPTimeout defines HTTP timeout.
|
||
|
type HTTPTimeout struct {
|
||
|
ConnectTimeout time.Duration
|
||
|
ReadWriteTimeout time.Duration
|
||
|
HeaderTimeout time.Duration
|
||
|
LongTimeout time.Duration
|
||
|
IdleConnTimeout time.Duration
|
||
|
}
|
||
|
|
||
|
type HTTPMaxConns struct {
|
||
|
MaxIdleConns int
|
||
|
MaxIdleConnsPerHost int
|
||
|
}
|
||
|
|
||
|
// Config defines oss configuration
|
||
|
type Config struct {
|
||
|
Endpoint string // OSS endpoint
|
||
|
AccessKeyID string // AccessId
|
||
|
AccessKeySecret string // AccessKey
|
||
|
RetryTimes uint // Retry count by default it's 5.
|
||
|
UserAgent string // SDK name/version/system information
|
||
|
IsDebug bool // Enable debug mode. Default is false.
|
||
|
Timeout uint // Timeout in seconds. By default it's 60.
|
||
|
SecurityToken string // STS Token
|
||
|
IsCname bool // If cname is in the endpoint.
|
||
|
HTTPTimeout HTTPTimeout // HTTP timeout
|
||
|
HTTPMaxConns HTTPMaxConns // Http max connections
|
||
|
IsUseProxy bool // Flag of using proxy.
|
||
|
ProxyHost string // Flag of using proxy host.
|
||
|
IsAuthProxy bool // Flag of needing authentication.
|
||
|
ProxyUser string // Proxy user
|
||
|
ProxyPassword string // Proxy password
|
||
|
IsEnableMD5 bool // Flag of enabling MD5 for upload.
|
||
|
MD5Threshold int64 // Memory footprint threshold for each MD5 computation (16MB is the default), in byte. When the data is more than that, temp file is used.
|
||
|
IsEnableCRC bool // Flag of enabling CRC for upload.
|
||
|
}
|
||
|
|
||
|
// getDefaultOssConfig gets the default configuration.
|
||
|
func getDefaultOssConfig() *Config {
|
||
|
config := Config{}
|
||
|
|
||
|
config.Endpoint = ""
|
||
|
config.AccessKeyID = ""
|
||
|
config.AccessKeySecret = ""
|
||
|
config.RetryTimes = 5
|
||
|
config.IsDebug = false
|
||
|
config.UserAgent = userAgent()
|
||
|
config.Timeout = 60 // Seconds
|
||
|
config.SecurityToken = ""
|
||
|
config.IsCname = false
|
||
|
|
||
|
config.HTTPTimeout.ConnectTimeout = time.Second * 30 // 30s
|
||
|
config.HTTPTimeout.ReadWriteTimeout = time.Second * 60 // 60s
|
||
|
config.HTTPTimeout.HeaderTimeout = time.Second * 60 // 60s
|
||
|
config.HTTPTimeout.LongTimeout = time.Second * 300 // 300s
|
||
|
config.HTTPTimeout.IdleConnTimeout = time.Second * 50 // 50s
|
||
|
config.HTTPMaxConns.MaxIdleConns = 100
|
||
|
config.HTTPMaxConns.MaxIdleConnsPerHost = 100
|
||
|
|
||
|
config.IsUseProxy = false
|
||
|
config.ProxyHost = ""
|
||
|
config.IsAuthProxy = false
|
||
|
config.ProxyUser = ""
|
||
|
config.ProxyPassword = ""
|
||
|
|
||
|
config.MD5Threshold = 16 * 1024 * 1024 // 16MB
|
||
|
config.IsEnableMD5 = false
|
||
|
config.IsEnableCRC = true
|
||
|
|
||
|
return &config
|
||
|
}
|