You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
69 lines
2.3 KiB
69 lines
2.3 KiB
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 |
|
} |
|
|
|
// 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 |
|
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.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 |
|
}
|
|
|