最近更新时间:2026-01-27 15:48:50
public void restoreObject() {
// 初始化 Ks3Client,参见“初始化”文档
Ks3Client ks3Client = initKs3Client();
try {
// 创建 RestoreObjectRequest 对象
RestoreObjectRequest request = new RestoreObjectRequest("bucketName", "objectKey");
// 设置解冻时间,单位:天
// 用户可设置解冻状态持续时间,归档范围为1-7天,冷归档范围为1-365天。
// 对于已处于解冻状态中的文件,可再次进行解冻操作,重新设置解冻持续时间,新设置的解冻持续时间将以当天为起始时间重新开始计算。
request.setExpirationInDays(1);
// 设置解冻优先级,取值:Expedited 高优先级、Standard 标准、Bulk 批量
// 对象存储类型是 ColdArchive 冷归档,则可选 3 种
// 默认为 Expedited 高优先级
// 对象存储类型是 Archive 归档则不支持设置解冻优先级
request.setTier(RestoreTier.EXPEDITED);
// 解冻对象
RestoreObjectResult restoreObjectResult = ks3Client.restoreObject(request);
// 获取对象存储类型:Archive 归档、ColdArchive 冷归档
System.out.println("Storage Class: " + restoreObjectResult.getStorageClass());
// 获取解冻状态,取值:RESTORE:解冻,RESTORING:解冻中,RESTORED:已解冻
// 如果是初次解冻,一般不会立即完成,可以稍后使用 HEAD Object 接口获取解冻状态
System.out.println("RestoreCycle: " + restoreObjectResult.getType());
} catch (Ks3ServiceException e) {
System.out.println("Ks3ServiceException occurred, which means the request was made to KS3, but KS3 returned an error response for some reason.");
System.out.println("Error Message: " + e.getErrorMessage());
System.out.println("Error Code: " + e.getErrorCode());
System.out.println("Request ID: " + e.getRequestId());
} catch (Ks3ClientException e) {
System.out.println("Ks3ClientException occurred, which means the client encountered an internal error while trying to communicate with KS3.");
System.out.println("Error Message: " + e.getMessage());
} finally {
// 不再使用时,关闭 Ks3Client
ks3Client.shutdown();
}
}public void getObjectRestoreStatus() {
// 初始化 Ks3Client,参见“初始化”文档
Ks3Client ks3Client = initKs3Client();
try {
// 获取对象解冻状态
HeadObjectResult headObjectResult = ks3Client.headObject("bucketName", "objectKey");
// 对解冻中的或已解冻的归档文件进行HEAD请求时,会增加x-kss-restore响应头
// 解冻中的文件会返回x-kss-restore: ongoing-request="true"
// 已解冻的文件会返回x-kss-restore: ongoing-request="false"及解冻过期时间,
// 例如:x-kss-restore: ongoing-request="false", expiry-date="Sun, 16 Apr 2017 08:12:33 GMT"
String restoreHeaderValue = (String) headObjectResult.getObjectMetadata().getMeta(HttpHeaders.XKssRestore.toString());
System.out.println("RestoreStatus: " + restoreHeaderValue);
// 可以使用以下方法获取解冻状态
RestoreStatus restoreStatus = headObjectResult.getObjectMetadata().getRestoreStatus();
System.out.println("Ongoing: " + restoreStatus.isOngoing());
System.out.println("Expiry Date: " + restoreStatus.getExpiryDate());
} catch (Ks3ServiceException e) {
System.out.println("Ks3ServiceException occurred, which means the request was made to KS3, but KS3 returned an error response for some reason.");
System.out.println("Error Message: " + e.getErrorMessage());
System.out.println("Error Code: " + e.getErrorCode());
System.out.println("Request ID: " + e.getRequestId());
} catch (Ks3ClientException e) {
System.out.println("Ks3ClientException occurred, which means the client encountered an internal error while trying to communicate with KS3.");
System.out.println("Error Message: " + e.getMessage());
} finally {
// 不再使用时,关闭 Ks3Client
ks3Client.shutdown();
}
}解冻API详情请参见文档:Restore Object。
纯净模式
