OBS客户端通用示例
开发过程中,您有任何问题可以在github上提交issue,或者在华为云对象存储服务论坛中发帖求助。接口参考文档详细介绍了每个接口的参数和使用方法。
使用OBS客户端进行接口调用操作完成后,没有异常抛出,则表明返回值有效,返回SDK公共响应头实例或其子类实例;如果抛出异常,则说明操作失败,此时应从SDK自定义异常实例中获取错误信息。
OBS客户端的通用方式用于上传本地“localfile”到桶名为“bucketname”里,名称为“objectname”。
代码示例如下所示:
// 您的工程中可以只保留一个全局的ObsClient实例
// ObsClient是线程安全的,可在并发场景下使用
ObsClient obsClient = null;
try
{
// 认证用的ak和sk硬编码到代码中或者明文存储都有很大的安全风险,建议在配置文件或者环境变量中密文存放,使用时解密,确保安全;本示例以ak和sk保存在环境变量中为例,运行本示例前请先在本地环境中设置环境变 量AccessKeyID和SecretAccessKey。
// 您可以登录访问管理控制台获取访问密钥AK/SK,获取方式请参见https://support.huaweicloud.com/usermanual-ca/ca_01_0003.html
String ak = System.getenv("ACCESS_KEY_ID");
String sk = System.getenv("SECRET_ACCESS_KEY_ID");
String endPoint = "https://your-endpoint";
// 创建ObsClient实例
obsClient = new ObsClient(ak, sk, endPoint);
// 调用接口进行操作,例如上传对象,其中localfile为待上传的本地文件路径,需要指定到具体的文件名
HeaderResponse response = obsClient.putObject("bucketname", "objectname", new File("localfile"));
Log.i("PutObject", response);
}
catch (ObsException e)
{
Log.e("PutObject", "Response Code: " + e.getResponseCode());
Log.e("PutObject", "Error Message: " + e.getErrorMessage());
Log.e("PutObject", "Error Code: " + e.getErrorCode());
Log.e("PutObject", "Request ID: " + e.getErrorRequestId());
Log.e("PutObject", "Host ID: " + e.getErrorHostId());
}finally{
// 关闭ObsClient实例,如果是全局ObsClient实例,可以不在每个方法调用完成后关闭
// ObsClient在调用ObsClient.close方法关闭后不能再次使用
if(obsClient != null){
try
{
obsClient.close();
}
catch (IOException e)
{
}
}
}