对象存储服务 OBS-配置OBS客户端

时间:2024-10-23 16:32:50

配置OBS客户端

开发过程中,您有任何问题可以在github上提交issue,或者在华为云 对象存储服务 论坛中发帖求助。接口参考文档详细介绍了每个接口的参数和使用方法。

当使用配置类(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服务。
support.huaweicloud.com/sdk-android-devg-obs/obs_26_0203.html