You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何查询AWS Glacier归档文件的上传状态

AWS Glacier归档状态查询及恢复方案

首先明确:你遇到的等待并非上传的归档未就绪,而是归档取回(下载)任务本身的处理耗时。Glacier归档上传成功后就处于永久可用状态,不同场景的状态查询方式如下:

1. 上传归档的有效性校验

你使用Java SDK(aws-java-sdk-glacier包)完成上传后,只要收到接口返回的ArchiveId,就代表归档已成功写入Glacier,无需额外查询归档存在状态。
如果需要校验上传内容完整性,可在上传时携带本地计算的SHA-256树哈希,上传完成后和服务端返回的哈希值比对即可,示例代码如下:

UploadArchiveRequest uploadReq = new UploadArchiveRequest()
    .withVaultName("你的vault名称")
    .withChecksum("本地预计算的SHA256树哈希")
    .withBody(fileInputStream)
    .withContentLength(fileSize);
UploadArchiveResult uploadRes = glacierClient.uploadArchive(uploadReq);

// 校验上传完整性,确认归档有效
String serverChecksum = uploadRes.getChecksum();
String archiveId = uploadRes.getArchiveId();

多设备上传的场景下,建议你把每个归档对应的ArchiveId、哈希值、所属设备标识、备份时间等元数据存入独立的中心数据库,恢复时直接从数据库取对应ArchiveId即可,无需调用Glacier接口查询归档存在性。

2. 归档取回任务的状态查询

Glacier不同取回层级的默认耗时不同:标准取回3-5小时、加急取回1-5分钟、批量取回5-12小时,这个过程的状态可以通过返回的任务ID查询,示例代码如下:

// 第一步:发起归档取回任务
InitiateJobRequest initJobReq = new InitiateJobRequest()
    .withVaultName("你的vault名称")
    .withJobParameters(new JobParameters()
        .withType("archive-retrieval")
        .withArchiveId("待恢复的归档ID")
        .withTier("Standard") // 可选Expedited/Bulk匹配不同取回速度
    );
InitiateJobResult initJobRes = glacierClient.initiateJob(initJobReq);
String jobId = initJobRes.getJobId();

// 第二步:轮询查询任务状态
DescribeJobResult jobInfo;
do {
    Thread.sleep(60000); // 建议每分钟轮询一次,避免触发限流
    jobInfo = glacierClient.describeJob(new DescribeJobRequest()
        .withVaultName("你的vault名称")
        .withJobId(jobId));
} while (!jobInfo.isCompleted());

// 任务完成后下载归档内容
if (StatusCode.Succeeded.toString().equals(jobInfo.getStatusCode())) {
    GetJobOutputResult outputRes = glacierClient.getJobOutput(new GetJobOutputRequest()
        .withVaultName("你的vault名称")
        .withJobId(jobId));
    InputStream archiveContent = outputRes.getBody();
    // 自行处理恢复的归档内容即可
}

适配多设备备份恢复的优化建议

  • 可配置SNS通知绑定取回任务,任务完成后主动接收通知,无需主动轮询减少额外接口调用
  • 如果对恢复时效要求极高,可选择S3 Glacier Instant Retrieval存储类,支持毫秒级取回归档,无需等待任务处理

内容的提问来源于stack exchange,提问作者Rami Khawaly

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.20 11:27:04