配置OBS客户端
当使用配置类(ObsConfiguration)创建OBS客户端(ObsClient)时,您可通过ObsConfiguration配置类对ObsClient进行配置,可配置代理、连接超时、最大连接数等参数。通过ObsConfiguration可以设置的参数见下表:
参数 | 描述 | 方法 | 建议值 |
|---|---|---|---|
connectionTimeout | 建立HTTP/HTTPS连接的超时时间(单位:毫秒)。默认为60000毫秒。 | ObsConfiguration.setConnectionTimeout | [10000, 60000] |
socketTimeout | Socket层传输数据的超时时间(单位:毫秒)。默认为60000毫秒。 | ObsConfiguration.setSocketTimeout | [10000, 60000] |
idleConnectionTime | 如果空闲时间超过此参数的设定值,则关闭连接(单位:毫秒)。默认为30000毫秒。 | ObsConfiguration.setIdleConnectionTime | 默认 |
maxIdleConnections | 连接池中最大空闲连接数,默认值:1000。 | ObsConfiguration.setMaxIdleConnections | N/A |
maxConnections | 最大允许的HTTP并发请求数。默认为1000。 | ObsConfiguration.setMaxConnections | 默认 |
maxErrorRetry | 请求失败(请求异常、服务端报500或503错误等)后最大的重试次数。默认3次。 说明: 该参数对于上传对象和下载对象接口时,当上传或下载已经进入数据流处理阶段后产生异常中断,此时将不会重试。 | ObsConfiguration.setMaxErrorRetry | [0, 5] |
endPoint | 连接OBS的服务地址。可包含协议类型、域名、端口号。示例:https://your-endpoint:443。 (出于安全性考虑,建议使用https协议) | ObsConfiguration.setEndPoint | N/A |
httpProxy | HTTP代理配置。默认为空。 | ObsConfiguration.setHttpProxy | N/A |
validateCertificate | 是否验证服务端证书。默认为false。 | ObsConfiguration.setValidateCertificate | N/A |
verifyResponseContentType | 是否验证响应头信息的ContentType。默认为true。 | ObsConfiguration.setVerifyResponseContentType | 默认 |
uploadStreamRetryBufferSize | 上传流对象时使用的缓存大小(单位:字节)。默认为512KB。 | ObsConfiguration.setUploadStreamRetryBufferSize | N/A |
readBufferSize | 从Socket流下载对象的缓存大小(单位:字节),-1表示不设置缓存。默认为-1。 | ObsConfiguration.setReadBufferSize | N/A |
writeBufferSize | 上传对象到Socket流时的缓存大小(单位:字节),-1表示不设置缓存。默认为-1。 | ObsConfiguration.setWriteBufferSize | N/A |
socketWriteBufferSize | Socket发送缓冲区大小(单位:字节),对应java.net.SocketOptions.SO_SNDBUF参数。默认为-1表示不设置。 | ObsConfiguration.setSocketWriteBufferSize | 默认 |
socketReadBufferSize | Socket接收缓冲区大小(单位:字节),对应java.net.SocketOptions.SO_RCVBUF参数。默认为-1表示不设置。 | ObsConfiguration.setSocketReadBufferSize | 默认 |
keyManagerFactory | 用于生成javax.net.ssl.KeyManager的工厂。默认为空。 | ObsConfiguration.setKeyManagerFactory | N/A |
trustManagerFactory | 用于生成javax.net.ssl.TrustManager的工厂。默认为空。 | ObsConfiguration.setTrustManagerFactory | N/A |
isStrictHostnameVerification | 是否严格验证服务端主机名。默认为false。 | ObsConfiguration.setIsStrictHostnameVerification | N/A |
keepAlive | 是否使用长连接访问OBS服务。默认为true。 | ObsConfiguration.setKeepAlive | N/A |
cname | 是否通过自定义域名访问OBS服务。默认为false。 说明: 为了保护您的业务不受华为云公共域名被相关机构接管的影响,建议优先选择自定义域名。 | ObsConfiguration.setCname | N/A |
sslProvider | SSLContext的Provider,默认使用JDK提供的SSLContext。 | ObsConfiguration.setSslProvider | N/A |
httpProtocolType | 访问OBS服务端时使用的HTTP协议类型。默认为HTTP1.1协议。 | ObsConfiguration.setHttpProtocolType | N/A |
httpDispatcher | 自定义分发器。 | ObsConfiguration.setHttpDispatcher | N/A |

- 建议值为N/A的表示需要根据实际情况进行设置。
- 如需提高大文件上传下载性能,在网络带宽满足的情况下,可对socketWriteBufferSize,sockeReadBufferSize,readBufferSize,writeBufferSize四个参数进行调优。
- 如网络状况不佳,建议增大connectionTimeout和socketTimeout的值。
- 如果设置的endPoint不带协议类型,则默认使用HTTPS协议。
- 出于DNS解析性能和OBS服务可靠性的考虑,不允许将endPoint设置为IP,必须使用域名访问OBS服务。


