全部文档
当前文档

暂无内容

如果没有找到您期望的内容,请尝试其他搜索词

文档中心

解冻归档文件(Java)

最近更新时间: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

文档导读
纯净模式常规模式

纯净模式

点击可全屏预览文档内容
文档反馈