in oss/client.go [677:717]
func applyOperationOpt(c *Options, op *Options) {
if c == nil || op == nil {
return
}
if op.Endpoint != nil {
c.Endpoint = op.Endpoint
}
if ToInt(op.RetryMaxAttempts) > 0 {
c.RetryMaxAttempts = op.RetryMaxAttempts
}
if op.Retryer != nil {
c.Retryer = op.Retryer
}
if c.Retryer == nil {
c.Retryer = retry.NopRetryer{}
}
if op.OpReadWriteTimeout != nil {
c.OpReadWriteTimeout = op.OpReadWriteTimeout
}
if op.HttpClient != nil {
c.HttpClient = op.HttpClient
}
if op.AuthMethod != nil {
c.AuthMethod = op.AuthMethod
}
//response handler
handlers := []func(*http.Response) error{
serviceErrorResponseHandler,
}
handlers = append(handlers, c.ResponseHandlers...)
handlers = append(handlers, op.ResponseHandlers...)
c.ResponseHandlers = handlers
}