创建OBS客户端
创建OBS客户端有以下几种方式:
1、直接使用服务地址创建OBS客户端(ObsClient)
2、以链式的形式从环境变量及ECS服务器上进行搜索以获取对应的访问密钥创建客户端
3、使用可定制各参数的配置类(ObsConfiguration)创建OBS客户端
1、使用服务地址创建OBS客户端
1、永久访问密钥(AK/SK)创建OBS客户端的代码如下:
Copied!
String endPoint = "https://your-endpoint";
// 认证用的ak和sk直接写到代码中有很大的安全风险,建议在配置文件或者环境变量中密文存放,使用时解密,确保安全;
// 本示例以ak和sk保存在环境变量中来实现身份验证为例,运行本示例前请先在本地环境中设置环境变量HUAWEICLOUD_SDK_AK和HUAWEICLOUD_SDK_SK。
String ak = System.getenv("HUAWEICLOUD_SDK_AK");
String sk = System.getenv("HUAWEICLOUD_SDK_SK");
// 创建ObsClient实例
ObsClient obsClient = new ObsClient(ak, sk, endPoint);
// 使用ObsClient
// 关闭obsClient
obsClient.close();
2、临时访问密钥(AK/SK/SecurityToken)创建OBS客户端的代码如下:
Copied!
String endPoint = "https://your-endpoint";
// 认证用的ak和sk直接写到代码中有很大的安全风险,建议在配置文件或者环境变量中密文存放,使用时解密,确保安全;
// 本示例以ak和sk保存在环境变量中来实现身份验证为例,运行本示例前请先在本地环境中设置环境变量HUAWEICLOUD_SDK_AK和HUAWEICLOUD_SDK_SK。
String ak = System.getenv("HUAWEICLOUD_SDK_AK");
String sk = System.getenv("HUAWEICLOUD_SDK_SK");
String securityToken = "*** Provide your Security Token ***";
// 创建ObsClient实例
ObsClient obsClient = new ObsClient(ak, sk, securityToken, endPoint);
// 使用ObsClient
// 关闭obsClient
obsClient.close();
说明
:您可以参考示例程序,进一步了解临时AK/SK/SecurityToken的获取方式和使用方式。
3、使用BasicCredentialsProvider创建OBS客户端的代码如下:
Copied!
String endPoint = "https://your-endpoint";
// 认证用的ak和sk直接写到代码中有很大的安全风险,建议在配置文件或者环境变量中密文存放,使用时解密,确保安全;
// 本示例以ak和sk保存在环境变量中来实现身份验证为例,运行本示例前请先在本地环境中设置环境变量HUAWEICLOUD_SDK_AK和HUAWEICLOUD_SDK_SK。
String ak = System.getenv("HUAWEICLOUD_SDK_AK");
String sk = System.getenv("HUAWEICLOUD_SDK_SK");
// 创建ObsClient实例
ObsClient obsClient = new ObsClient(new BasicObsCredentialsProvider(ak, sk), endPoint);
// 使用ObsClient
// 关闭obsClient
obsClient.close();
4、使用EnvironmentVariableObsCredentialsProvider创建OBS客户端的代码如下:
Copied!
String endPoint = "https://your-endpoint";
// 创建ObsClient实例
ObsClient obsClient = new ObsClient(new EnvironmentVariableObsCredentialsProvider(), endPoint);
// 使用ObsClient
// 关闭obsClient
obsClient.close();
说明
:以上方式会在环境变量里寻找访问密钥,需要在环境变量中定义OBS_ACCESS_KEY_ID和OBS_SECRET_ACCESS_KEY分别代表永久的AK和SK。
5、使用EcsObsCredentialsProvider创建OBS客户端的代码如下:
Copied!
String endPoint = "https://your-endpoint";
// 创建ObsClient实例
ObsClient obsClient = new ObsClient(new EcsObsCredentialsProvider(), endPoint);
// 使用ObsClient
// 关闭obsClient
obsClient.close();
说明
:当应用程序部署在ECS服务器上时,使用以上方式创建的OBS客户端会从ECS服务器自动获取临时访问密钥和定期自动刷新。
须知
:请确保服务端和应用程序部署所在环境的UTC时间一致,否则可能会导致临时访问密钥无法及时刷新。
2、使用链式方式创建OBS客户端
除了上述指定一种方式获取访问密钥外,您还可以以链式的形式从环境变量及ECS服务器上进行搜索以获取对应的访问密钥。
Copied!
String endPoint = "https://your-endpoint";
// 创建ObsClient实例
ObsClient obsClient = new ObsClient(new OBSCredentialsProviderChain(), endPoint);
// 使用ObsClient
// 关闭obsClient
obsClient.close();
说明
:以上方式指定以链式的方式从预定义方式列表中搜索访问密钥。当前默认提供从环境变量中以及从ECS服务器上获取访问密钥两种预定义搜索方式,并按照先从环境变量,再从ECS服务器的顺序进行搜索。链式搜索方式会以第一组成功获取到的访问密钥创建OBS客户端。
3、使用配置类创建OBS客户端
使用可定制各参数的配置类(ObsConfiguration)创建OBS客户端(ObsClient),创建完成后不支持再次修改参数,具体可配置的参数参见配置OBS客户端。以上创建OBS客户端方式均支持使用配置类进行创建,示例代码如下:
Copied!
String endPoint = "https://your-endpoint";
// 认证用的ak和sk直接写到代码中有很大的安全风险,建议在配置文件或者环境变量中密文存放,使用时解密,确保安全;
// 本示例以ak和sk保存在环境变量中来实现身份验证为例,运行本示例前请先在本地环境中设置环境变量HUAWEICLOUD_SDK_AK和HUAWEICLOUD_SDK_SK。
String ak = System.getenv("HUAWEICLOUD_SDK_AK");
String sk = System.getenv("HUAWEICLOUD_SDK_SK");
// 创建ObsConfiguration配置类实例
ObsConfiguration config = new ObsConfiguration();
config.setEndPoint(endPoint);
config.setSocketTimeout(30000);
config.setMaxErrorRetry(1);
// 创建ObsClient实例
ObsClient obsClient = new ObsClient(ak, sk, config);
// 使用Provider创建ObsClient实例
// ObsClient obsClient = new ObsClient(new EnvironmentVariableObsCredentialsProvider(), config);
// ObsClient obsClient = new ObsClient(new EcsObsCredentialsProvider(), config);
// 使用ObsClient
// 关闭obsClient
obsClient.close();
说明
:
您的工程中可以有多个ObsClient,也可以只有一个ObsClient。
ObsClient是线程安全的,可在并发场景下使用。
须知
:
ObsClient在调用ObsClient.close方法关闭后不能再次使用。
版本说明
本示例基于华为云SDK V3.0版本开发。
功能介绍
OBS客户端(ObsClient)是访问OBS服务的Java客户端,它为调用者提供一系列与OBS服务进行交互的接口,用于管理、操作桶(Bucket)和对象(Object)等OBS服务上的资源。使用OBS Java SDK向OBS发起请求,您需要初始化一个ObsClient实例,并根据需要修改ObsConfiguration的默认配置项。
准备工作
创建OBS客户端
创建OBS客户端有以下几种方式:
1、直接使用服务地址创建OBS客户端(ObsClient)
2、以链式的形式从环境变量及ECS服务器上进行搜索以获取对应的访问密钥创建客户端
3、使用可定制各参数的配置类(ObsConfiguration)创建OBS客户端
1、使用服务地址创建OBS客户端
1、永久访问密钥(AK/SK)创建OBS客户端的代码如下:
2、临时访问密钥(AK/SK/SecurityToken)创建OBS客户端的代码如下:
说明
:您可以参考示例程序,进一步了解临时AK/SK/SecurityToken的获取方式和使用方式。3、使用BasicCredentialsProvider创建OBS客户端的代码如下:
4、使用EnvironmentVariableObsCredentialsProvider创建OBS客户端的代码如下:
说明
:以上方式会在环境变量里寻找访问密钥,需要在环境变量中定义OBS_ACCESS_KEY_ID和OBS_SECRET_ACCESS_KEY分别代表永久的AK和SK。5、使用EcsObsCredentialsProvider创建OBS客户端的代码如下:
说明
:当应用程序部署在ECS服务器上时,使用以上方式创建的OBS客户端会从ECS服务器自动获取临时访问密钥和定期自动刷新。须知
:请确保服务端和应用程序部署所在环境的UTC时间一致,否则可能会导致临时访问密钥无法及时刷新。2、使用链式方式创建OBS客户端
除了上述指定一种方式获取访问密钥外,您还可以以链式的形式从环境变量及ECS服务器上进行搜索以获取对应的访问密钥。
说明
:以上方式指定以链式的方式从预定义方式列表中搜索访问密钥。当前默认提供从环境变量中以及从ECS服务器上获取访问密钥两种预定义搜索方式,并按照先从环境变量,再从ECS服务器的顺序进行搜索。链式搜索方式会以第一组成功获取到的访问密钥创建OBS客户端。3、使用配置类创建OBS客户端
使用可定制各参数的配置类(ObsConfiguration)创建OBS客户端(ObsClient),创建完成后不支持再次修改参数,具体可配置的参数参见配置OBS客户端。以上创建OBS客户端方式均支持使用配置类进行创建,示例代码如下:
说明
: 您的工程中可以有多个ObsClient,也可以只有一个ObsClient。 ObsClient是线程安全的,可在并发场景下使用。须知
: ObsClient在调用ObsClient.close方法关闭后不能再次使用。参考
更多信息请参考OBS对象存储服务