对象存储服务 OBS-创建并配置客户端(Java SDK):配置概览

时间:2024-04-19 17:32:12

配置概览

图1 创建并配置客户端概览

所示,请根据需要选择客户端类、选择获取访问密钥的方法,以及进行其他配置:

表1 创建并配置客户端概览

选择项

可选项

说明

示例代码

客户端类

不透传密钥的客户端类

如果您只想配置一次访问凭证,不想在每一次调用OBS接口时都为客户端设置一次访问密钥,请使用普通客户端类ObsClient创建客户端。

ObsClient示例代码

透传密钥的客户端类

如果您需要在每次调用接口时,都为客户端设置一次访问凭证,OBS Java SDK提供了直接在接口方法中透传AK和SK的OBS客户端类SecretFlexibleObsClient,SecretFlexibleObsClient继承自ObsClient。

SecretFlexibleObsClient示例代码

访问凭证获取方式

从变量传入

创建OBS客户端实例,并使用变量传入方式的访问凭证。

  • 访问凭证变量直接作为参数示例代码
  • BasicObsCredentialsProvider示例代码

从环境变量获取

创建OBS客户端实例,并使用EnvironmentVariableObsCredentialsProvider从环境变量获取访问凭证。

EnvironmentVariableObsCredentialsProvider示例代码

ECS场景从云服务委托获取

创建OBS客户端实例,并使用EcsObsCredentialsProvider从ECS服务器自动获取临时访问密钥,并且访问凭证会定期自动刷新。

须知:
  1. 使用EcsObsCredentialsProvider的前提,应用程序须运行在ECS服务器上,并且ECS绑定了IAM对ECS的云服务委托(该委托拥有OBS权限)。
  2. 请确保服务端和应用程序部署所在环境的UTC时间一致,否则可能会导致临时访问密钥无法及时刷新。
  3. 使用该方式创建客户端时,SDK会请求固定IP(169.254.169.254)的API获取临时AKSK,具体请参见在ECS上获取Security Key

EnvironmentVariableObsCredentialsProvider示例代码

链式获取

以链式的方式从预定义方式列表中搜索访问密钥,以第一组成功获取到的访问密钥创建OBS客户端。

当前顺序是默认先从环境变量,再从ECS服务器委托中进行搜索,暂不支持自定义获取方式和顺序。

OBSCredentialsProviderChain示例代码

其他配置

只配置终端节点(endpoint)

除了访问凭证外,只配置中终端节点(endpoint)参数。

除访问凭证外只配置endpoint示例代码

除了配置终端节点(endpoint)还有其他配置

除了配置终端节点(endpoint)还需要配置HTTP代理、Socket层传输数据超时时间等参数,您可通过ObsConfiguration配置类对ObsClient进行配置,支持的配置项参见表2

ObsConfiguration示例代码

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