|
|
@@ -36,67 +36,67 @@ type HTTPMaxConns struct {
|
|
|
}
|
|
|
|
|
|
// CredentialInf is interface for get AccessKeyID,AccessKeySecret,SecurityToken
|
|
|
-type CredentialInf interface {
|
|
|
+type Credentials interface {
|
|
|
GetAccessKeyID() string
|
|
|
GetAccessKeySecret() string
|
|
|
GetSecurityToken() string
|
|
|
}
|
|
|
|
|
|
// CredentialInfBuild is interface for get CredentialInf
|
|
|
-type CredentialInfBuild interface {
|
|
|
- GetCredentialInf() CredentialInf
|
|
|
+type CredentialsProvider interface {
|
|
|
+ GetCredentials() Credentials
|
|
|
}
|
|
|
|
|
|
-type defaultCredentialInf struct {
|
|
|
+type defaultCredentials struct {
|
|
|
config *Config
|
|
|
}
|
|
|
|
|
|
-func (defCre *defaultCredentialInf) GetAccessKeyID() string {
|
|
|
+func (defCre *defaultCredentials) GetAccessKeyID() string {
|
|
|
return defCre.config.AccessKeyID
|
|
|
}
|
|
|
|
|
|
-func (defCre *defaultCredentialInf) GetAccessKeySecret() string {
|
|
|
+func (defCre *defaultCredentials) GetAccessKeySecret() string {
|
|
|
return defCre.config.AccessKeySecret
|
|
|
}
|
|
|
|
|
|
-func (defCre *defaultCredentialInf) GetSecurityToken() string {
|
|
|
+func (defCre *defaultCredentials) GetSecurityToken() string {
|
|
|
return defCre.config.SecurityToken
|
|
|
}
|
|
|
|
|
|
-type defaultCredentialInfBuild struct {
|
|
|
+type defaultCredentialsProvider struct {
|
|
|
config *Config
|
|
|
}
|
|
|
|
|
|
-func (defBuild *defaultCredentialInfBuild) GetCredentialInf() CredentialInf {
|
|
|
- return &defaultCredentialInf{config: defBuild.config}
|
|
|
+func (defBuild *defaultCredentialsProvider) GetCredentials() Credentials {
|
|
|
+ return &defaultCredentials{config: defBuild.config}
|
|
|
}
|
|
|
|
|
|
// 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.
|
|
|
- LogLevel int // Log level
|
|
|
- Logger *log.Logger // For write log
|
|
|
- UploadLimitSpeed int // Upload limit speed:KB/s, 0 is unlimited
|
|
|
- UploadLimiter *OssLimiter // Bandwidth limit reader for upload
|
|
|
- UserAKBuild CredentialInfBuild // User provides interface to get AccessKeyID, AccessKeySecret, SecurityToken
|
|
|
+ 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.
|
|
|
+ LogLevel int // Log level
|
|
|
+ Logger *log.Logger // For write log
|
|
|
+ UploadLimitSpeed int // Upload limit speed:KB/s, 0 is unlimited
|
|
|
+ UploadLimiter *OssLimiter // Bandwidth limit reader for upload
|
|
|
+ CredentialsProvider CredentialsProvider // User provides interface to get AccessKeyID, AccessKeySecret, SecurityToken
|
|
|
}
|
|
|
|
|
|
// LimitUploadSpeed uploadSpeed:KB/s, 0 is unlimited,default is 0
|
|
|
@@ -129,9 +129,9 @@ func (config *Config) WriteLog(LogLevel int, format string, a ...interface{}) {
|
|
|
config.Logger.Printf("%s", logBuffer.String())
|
|
|
}
|
|
|
|
|
|
-// for get CredentialInfBuild
|
|
|
-func (config *Config) GetCredentialInf() CredentialInf {
|
|
|
- return config.UserAKBuild.GetCredentialInf()
|
|
|
+// for get Credentials
|
|
|
+func (config *Config) GetCredentials() Credentials {
|
|
|
+ return config.CredentialsProvider.GetCredentials()
|
|
|
}
|
|
|
|
|
|
// getDefaultOssConfig gets the default configuration.
|
|
|
@@ -169,5 +169,8 @@ func getDefaultOssConfig() *Config {
|
|
|
config.LogLevel = LogOff
|
|
|
config.Logger = log.New(os.Stdout, "", log.LstdFlags)
|
|
|
|
|
|
+ provider := &defaultCredentialsProvider{config: &config}
|
|
|
+ config.CredentialsProvider = provider
|
|
|
+
|
|
|
return &config
|
|
|
}
|