更新时间:2024-06-21 GMT+08:00
分享

OBS客户端通用示例

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

使用OBS客户端进行接口调用操作完成后,没有异常抛出,则表明返回值有效,返回SDK公共响应头实例或其子类实例;如果抛出异常,则说明操作失败,此时应从SDK自定义异常实例中获取错误信息。

以下代码展示了使用OBS客户端的通用方式:

// 您的工程中可以只保留一个全局的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)
        {
        }
    }
}

相关文档