更新时间:2024-06-21 GMT+08:00
设置对象生命周期
上传对象或者初始化分段上传任务时,您可以直接指定对象的过期时间。示例代码如下:
// 认证用的ak和sk硬编码到代码中或者明文存储都有很大的安全风险,建议在配置文件或者环境变量中密文存放,使用时解密,确保安全;本示例以ak和sk保存在环境变量中为例,运行本示例前请先在本地环境中设置环境变量ACCESS_KEY_ID和SECRET_ACCESS_KEY_ID。
// 您可以登录访问管理控制台获取访问密钥AK/SK,获取方式请参见https://support.huaweicloud.com/intl/zh-cn/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服务端自动清理。
- 该方式设置的对象过期时间,其优先级高于桶生命周期规则。
父主题: 上传对象