对象存储服务 OBS-创建并配置客户端(Java SDK):ObsConfiguration类支持配置的参数列表

时间:2024-12-11 15:52:27

ObsConfiguration类支持配置的参数列表

  • 如需提高文件上传下载性能,在网络带宽满足的情况下,可对socketWriteBufferSize,sockeReadBufferSize,readBufferSize,writeBufferSize四个参数进行调优。
  • 如网络状况不佳,建议增大connectionTimeout和socketTimeout的值。
表2 ObsConfiguration类支持配置的参数列表

参数

描述

方法

建议值

connectionTimeout

参数解释:

建立HTTP/HTTPS连接的超时时间。

默认取值:

60000,单位:毫秒。

ObsConfiguration.setConnectionTimeout

[10000, 60000]

socketTimeout

参数解释:

Socket层传输数据的超时时间(单位:毫秒)。

默认取值:

60000,单位:毫秒。

ObsConfiguration.setSocketTimeout

[10000, 60000]

idleConnectionTime

参数解释:

如果空闲时间超过此参数的设定值,则关闭连接。

默认取值:

30000,单位:毫秒。

ObsConfiguration.setIdleConnectionTime

根据实际情况设置

maxIdleConnections

参数解释:

连接池中最大空闲连接数。

默认取值:

1000,单位:个。

ObsConfiguration.setMaxIdleConnections

根据实际情况设置

maxConnections

参数解释:

最大允许的HTTP并发请求数。

默认取值:

1000,单位:个。

ObsConfiguration.setMaxConnections

默认

maxErrorRetry

参数解释:

请求失败(请求异常、服务端报500或503错误等)后最大的重试次数。

约束限制:

该参数对于上传对象和下载对象接口时,当上传或下载已经进入数据流处理阶段后产生异常中断,此时将不会重试。

默认取值:

3,单位:次。

ObsConfiguration.setMaxErrorRetry

[0, 5]

endPoint

参数解释:

连接OBS的服务地址。可包含协议类型、 域名 、端口号。示例:https://your-endpoint:443。(出于安全性考虑,建议使用https协议)

约束限制:

出于DNS解析性能和OBS服务可靠性的考虑,不允许将endPoint设置为IP,必须使用域名访问OBS服务,同时endpoint设置为IP还会导致使用path请求方式访问OBS桶,此方式已经禁止使用。(请在这个页面搜索并查看”禁止使用path请求方式访问OBS桶“相关说明)。

默认取值:

ObsConfiguration.setEndPoint

根据实际情况设置

httpProxy

参数解释:

HTTP代理配置。

默认取值:

默认为空

ObsConfiguration.setHttpProxy

根据实际情况设置

validateCertificate

参数解释:

是否验证服务端证书。

取值范围:

  • true:验证服务端证书。
  • false:不验证服务端证书。

默认取值:

false

ObsConfiguration.setValidateCertificate

根据实际情况设置

verifyResponseContentType

参数解释:

是否验证响应头信息的ContentType。

取值范围:

  • true:验证响应头信息的ContentType。
  • false:不验证响应头信息的ContentType。

默认取值:

true

ObsConfiguration.setVerifyResponseContentType

默认

readBufferSize

参数解释:

从Socket流下载对象的缓存大小,-1表示不设置缓存。

默认取值:

-1,单位:字节。

ObsConfiguration.setReadBufferSize

根据实际情况设置

writeBufferSize

参数解释:

上传对象到Socket流时的缓存大小,-1表示不设置缓存。

默认取值:

-1,单位:字节。

ObsConfiguration.setWriteBufferSize

根据实际情况设置

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

根据实际情况设置

trustManagerFactory

参数解释:

用于生成javax.net.ssl.TrustManager的工厂。

默认取值:

默认为空。

ObsConfiguration.setTrustManagerFactory

根据实际情况设置

isStrictHostnameVerification

参数解释:

是否严格验证服务端主机名。设置为true后,需要通过javax.net.ssl.HttpsURLConnection.setDefaultHostnameVerifier去设置一个实现javax.net.ssl.HostnameVerifier接口的对象,用于验证主机名

取值范围:

  • true:严格验证服务端主机名。
  • false:不严格验证服务端主机名。

默认取值:

false

ObsConfiguration.setIsStrictHostnameVerification

根据实际情况设置

keepAlive

参数解释:

是否使用长连接访问OBS服务。

取值范围:

  • true:使用长连接访问OBS服务。
  • false:不使用长连接访问OBS服务。

默认取值:

true

ObsConfiguration.setKeepAlive

根据实际情况设置

cname

参数解释:

是否通过自定义域名访问OBS服务。

取值范围:

  • true:通过自定义域名访问OBS服务。
  • false:不通过自定义域名访问OBS服务。

默认取值:

false

ObsConfiguration.setCname

根据实际情况设置

sslProvider

参数解释:

SSLContext的Provider。

默认取值:

使用JDK提供的SSLContext。

ObsConfiguration.setSslProvider

根据实际情况设置

httpProtocolType

参数解释:

访问OBS服务端时使用的HTTP协议类型。

默认取值:

HTTP1.1

说明:

如果设置的endPoint不带协议类型,则默认使用HTTPS协议。

ObsConfiguration.setHttpProtocolType

根据实际情况设置

httpDispatcher

参数解释:

自定义分发器。

默认取值:

ObsConfiguration.setHttpDispatcher

根据实际情况设置

secureRandom

参数解释:

配置随机数生成器,支持设置为自定义的随机数生成器。

默认取值:

默认为 new SecureRandom()

说明:
  • 在某些平台上new SecureRandom()可能会使用不安全实现。出于安全考虑,建议通过ObsConfiguration.setSecureRandom()设置一个种子是真随机数的SecureRandom。
  • 当操作系统没有足够的熵来生成随机数时(比如系统刚启动时),那么生成真随机数的SecureRandom可能会阻塞,直到足够的熵可用为止。建议同时通过相关措施补充熵(例如linux下的haveged),改善熵源不足时生成真随机数阻塞的问题。

ObsConfiguration.setSecureRandom

根据实际情况设置

support.huaweicloud.com/sdk-java-devg-obs/obs_21_0202.html