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

设置对象生命周期

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

上传对象或者初始化分段上传任务时,您可以直接指定对象的过期时间。示例代码如下:

// 认证用的ak和sk硬编码到代码中或者明文存储都有很大的安全风险,建议在配置文件或者环境变量中密文存放,使用时解密,确保安全;本示例以ak和sk保存在环境变量中为例,运行本示例前请先在本地环境中设置环境变量ACCESS_KEY_ID和SECRET_ACCESS_KEY_ID。
// 您可以登录访问管理控制台获取访问密钥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 obsClient = new ObsClient(ak, sk, endPoint);
 try {
      PutObjectRequest request = new PutObjectRequest();
      request.setBucketName("examplebucket");
      request.setObjectKey("objectname");
      request.setFile(new File("localfile"));
      // 上传对象时,设置对象30天后过期
      request.setExpires(30);
      obsClient.putObject(request);
      // InitiateMultipartUploadRequest request2 = new InitiateMultipartUploadRequest("bucketname", "objectname"); 
      //// 初始化分段上传任务时,设置合并段后生成的对象60天后过期 
      // request2.setExpires(60); 
      //obsClient.initiateMultipartUpload(request);
      System.out.println("putObject successfully");
   } catch (ObsException e) {
      System.out.println("putObject failed");
      // 请求失败,打印http状态码
      System.out.println("HTTP Code:" + e.getResponseCode());
      // 请求失败,打印服务端错误码
      System.out.println("Error Code:" + e.getErrorCode());
      // 请求失败,打印详细错误信息
      System.out.println("Error Message:" + e.getErrorMessage());
      // 请求失败,打印请求id
      System.out.println("Request ID:" + e.getErrorRequestId());
      System.out.println("Host ID:" + e.getErrorHostId());
      e.printStackTrace();
  } catch (Exception e) {
      System.out.println("putObject failed");
      // 其他异常信息打印
      e.printStackTrace();
  }
  • 该方式仅支持设置以天为单位的对象过期时间,过期后的对象会被OBS服务端自动清理。
  • 该方式设置的对象过期时间,其优先级高于桶生命周期规则。

相关文档