完成分段上传(发布上传 ID) - Amazon Glacier
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

此页面仅适用于使用 Vaults 和 2012 年原始 REST API 的 Amazon Glacier 服务的现有客户。

如果您正在寻找档案存储解决方案,我们建议您在亚马逊 S3、S3 Glacier 即时检索、S3 Glacier 灵活检索和 S3 Glacier Deep Archive Deep Archive 中使用 Amazon Glacier 存储类。要了解有关这些存储选项的更多信息,请参阅 Amazon Glacier 存储类别

从 2025 年 12 月 15 日起,Amazon Glacier(最初基于保管库的独立服务)将不再接受新客户,对现有客户不产生任何影响。Amazon Glacier 是一项独立的服务 APIs ,拥有自己的服务,可将数据存储在文件库中,不同于亚马逊 S3 和 Amazon S3 Glacier 存储类别。在 Amazon Glacier 中,您的现有数据将保持安全且可以无限期地访问。无需迁移。对于低成本、长期的存档存储, Amazon 建议使用 Amazon S3 Glacier 存储类别,这些存储类别基于S3存储桶 APIs、完全 Amazon Web Services 区域 可用性、更低的成本和 Amazon 服务集成,可提供卓越的客户体验。如果您想要增强功能,可以考虑使用我们的Amazon 解决方案指南迁移到 Amazon S3 Glacier 存储类别,将数据从 Amazon Glacier 文件库传输到 Amazon S3 Glacier 存储类

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

完成分段上传(发布上传 ID)

说明

您调用此分段上传操作是为了通知 Amazon Glacier(Amazon Glacier)所有档案段均已上传,Amazon Glacier 现在可以从上传的段中组装档案。

有关分段上传的信息,请参阅“分段上传大型档案(分段上传)”。

组装档案并将其保存到文件库后,Amazon Glacier 会返回新创建的档案资源的档案 ID。上传档案后,您应保存返回的档案 ID,以便在以后检索该档案。

在请求中,您必须包括已上传的整个档案的计算 SHA256 树形哈希。有关计算 SHA256 树形哈希的信息,请参见计算校验和。在服务器端,Amazon Glacier 还会构造组装好的档案的 SHA256 树形哈希。如果值匹配,Amazon Glacier 会将档案保存到文件库中;否则,它将返回错误,操作将失败。列出段(获取上传 ID) 操作可以返回特定分段上传已上传段的列表。它包括每个已上传段的校验和信息,可以用于解决错误的校验和问题。

此外,Amazon Glacier 还会检查是否有任何缺失的内容范围。上传段时,您可以指定范围值,用于标识每段在最终档案汇编的位置。在组装最终档案时,Amazon Glacier 会检查是否有任何缺失的内容范围,以及是否存在缺失的内容范围,Amazon Glacier 会返回错误,完成分段上传操作将失败。

完成分段上传是一种幂等的操作。第一次成功完成分段上传后,如果您在短时间内再次调用该操作,则该操作将成功并返回相同的档案 ID。这在您遇到网络问题或收到 500 服务器错误时很有用,在这种情况下,您可以重复您的完成分段上传请求并获取相同的档案 ID,而无需创建重复的档案。但是,请注意,在分段上传完成后,您不能调用列出段操作,并且分段上传将不会出现在列出分段上传响应中,即使可能幂等完成也是如此。

请求

要完成分段上传,您需要向 Amazon Glacier 为响应您的启动分段上传请求而创建的上传编号的 URI 发送 HTTP POST 请求。这是您在上传段时使用的相同 URI。除了常见的必需标头外,还必须包括整个档案的 SHA256 树形哈希结果以及档案的总大小(以字节为单位)。

语法

POST /AccountId/vaults/VaultName/multipart-uploads/uploadID Host: glacier.Region.amazonaws.com Date: date Authorization: SignatureValue x-amz-sha256-tree-hash: SHA256 tree hash of the archive x-amz-archive-size: ArchiveSize in bytes x-amz-glacier-version: 2012-06-01

注意

AccountId值是拥有文件库的账户的 Amazon Web Services 账户 ID。您可以指定一个 Amazon Web Services 账户 ID,也可以选择指定一个 '-'(连字符),在这种情况下,Amazon Glacier 使用与用于签署请求的凭证关联的 Amazon Web Services 账户 ID。如果您使用账户 ID,请勿在 ID 中包含任何连字符 ('-')。

请求参数

此操作不使用请求参数。

请求标头

除了所有操作通用的请求标头外,此操作还使用以下请求标头。有关通用请求标头的信息,请参阅常见请求标头

名称 说明 必填
x-amz-archive-size

整个档案的总大小(以字节为单位)。此值应为您上传的各段的所有大小之和。

类型:字符串

默认值:无

限制:无

x-amz-sha256-tree-hash

整个档案的 SHA256 树形哈希。它是各个部分的树形哈希的 SHA256 树形哈希。如果您在请求中指定的值与 Amazon Glacier 计算的最终汇编档案的 SHA256 树形哈希值不匹配,Amazon Glacier 将返回错误并请求失败。

类型:字符串

默认值:无

限制:无

请求元素

此操作不使用请求要素。

响应

Amazon Glacier(Amazon Glacier)创建整个档案的 SHA256 树形哈希。如果该值与您在请求中指定的整个档案的 SHA256树形哈希值相匹配,Amazon Glacier 会将该档案添加到文件库中。作为响应,它会返回 HTTP Location 标头,其中包括新添加的档案资源的 URL 路径。如果档案大小或您在请求中发送 SHA256 的档案大小不匹配,Amazon Glacier 将返回错误,并且上传仍处于未完成状态。稍后可以使用正确值重试完成分段上传操作,此时,您可以成功创建档案。如果分段上传未完成,Amazon Glacier 最终将收回上传编号。

语法

HTTP/1.1 201 Created x-amzn-RequestId: x-amzn-RequestId Date: Date Location: Location x-amz-archive-id: ArchiveId

响应标头

除了所有操作通用的响应标头外,成功的响应中还包括以下响应标头。有关通用响应标头的信息,请参阅常用响应标头

名称 说明
Location

新创建档案的相对 URI 路径。此 URL 包含由 Amazon Glacier 生成的档案 ID。

类型:字符串

x-amz-archive-id

档案的 ID。此值也包括在 Location 标头中,作为该标头的一部分。

类型:字符串

响应字段

此操作不返回响应正文。

示例

示例请求

在此示例中,HTTP POST 请求会发送到启动分段上传请求返回的 URI。该请求指定了整个档案的 SHA256 树形哈希值和档案的总大小。

POST /-/vaults/examplevault/multipart-uploads/OW2fM5iVylEpFEMM9_HpKowRapC3vn5sSL39_396UW9zLFUWVrnRHaPjUJddQ5OxSHVXjYtrN47NBZ-khxOjyEXAMPLE HTTP/1.1 Host: glacier.us-west-2.amazonaws.com z-amz-Date: 20170210T120000Z x-amz-sha256-tree-hash:1ffc0f54dd5fdd66b62da70d25edacd0 x-amz-archive-size:8388608 x-amz-glacier-version: 2012-06-01 Authorization: AWS4-HMAC-SHA256 Credential=AKIAIOSFODNN7EXAMPLE/20141123/us-west-2/glacier/aws4_request,SignedHeaders=host;x-amz-date;x-amz-glacier-version,Signature=9257c16da6b25a715ce900a5b45b03da0447acf430195dcb540091b12966f2a2

响应示例

以下示例响应显示,Amazon Glacier 成功使用您上传的段创建了档案。该响应包括具有完整路径的档案 ID。

HTTP/1.1 201 Created x-amzn-RequestId: AAABZpJrTyioDC_HsOmHae8EZp_uBSJr6cnGOLKp_XJCl-Q Date: Wed, 10 Feb 2017 12:00:00 GMT Location: /111122223333/vaults/examplevault/archives/NkbByEejwEggmBz2fTHgJrg0XBoDfjP4q6iu87-TjhqG6eGoOY9Z8i1_AUyUsuhPAdTqLHy8pTl5nfCFJmDl2yEZONi5L26Omw12vcs01MNGntHEQL8MBfGlqrEXAMPLEArchiveId x-amz-archive-id: NkbByEejwEggmBz2fTHgJrg0XBoDfjP4q6iu87-TjhqG6eGoOY9Z8i1_AUyUsuhPAdTqLHy8pTl5nfCFJmDl2yEZONi5L26Omw12vcs01MNGntHEQL8MBfGlqrEXAMPLEArchiveId

您现在可以向新添加的资源/档案的 URI 发送 HTTP 请求。例如,您可以发送 GET 请求,以检索档案。