上传段(设置上传 ID) - Amazon Glacier

此页面仅适用于使用 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 中,您的现有数据将保持安全且可以无限期地访问。无需迁移。对于低成本、长期的存档存储, AWS 建议使用 Amazon S3 Glacier 存储类别,这些存储类别基于S3存储桶 APIs、完全 AWS 区域 可用性、更低的成本和 AWS 服务集成,可提供卓越的客户体验。如果您想要增强功能,可以考虑使用我们的AWS 解决方案指南迁移到 Amazon S3 Glacier 存储类别,将数据从 Amazon Glacier 文件库传输到 Amazon S3 Glacier 存储类

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

上传段(设置上传 ID)

说明

此分段上传操作会上传档案的一段。您可以按任何顺序上传档案段,因为在您的上传段请求中,您会指定将在此段中上传的汇编档案的字节范围。此外,您还可以并行上传这些段。您最多可以为一个分段上传上传 10 000 段。

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

如果满足以下任一条件,Amazon Glacier(亚马逊 Glacier)会拒绝您的上传分段请求:

  • SHA256 树形哈希不匹配 — 为确保部件数据在传输过程中不会损坏,您需要计算该部分的 SHA256 树形哈希并将其包含在请求中。收到零件数据后,Amazon Glacier 还会计算 SHA256 树形哈希。如果这两个哈希值不匹配,则操作会失败。有关计算 SHA256 树形哈希的信息,请参见计算校验和

  • SHA256 线性哈希不匹配 — 授权所必需的,您需要计算整个上传有效负载的 SHA256 线性哈希值并将其包含在请求中。有关计算 SHA256 线性哈希的信息,请参见计算校验和

  • 段大小不匹配 — 除了最后一段以外,每一段的大小必须与相应 启动分段上传(发布分段上传) 请求中指定的大小相匹配。最后一段的大小必须是与指定大小相同的大小或者小于指定大小。

    注意

    如果您上传一段,其大小小于您在启动分段上传请求中指定的段大小,并且该段不是最后一段,则上传段请求会成功。但是,后续的完成分段上传请求会失败。

  • 范围未对齐 — 请求中的字节范围值未与相应启动请求中指定的段大小对齐。例如,如果您指定 4194304 字节 (4 MB) 的段大小,则 0 到 4194303 字节 (4 MB —1) 以及 4194304 (4 MB) 到 8388607 (8 MB —1) 为有效的段范围。但是,如果您将范围值设置为 2MB 到 6MB,则范围与段大小未对齐,上传将失败。

此操作是幂等的。如果您多次上传相同的段,则包括在最近请求中的数据会覆盖之前上传的数据。

请求

您将该 HTTP PUT 请求发送到启动分段上传请求返回的上传 ID 的 URI。Amazon Glacier 使用上传编号将段上传与特定的分段上传关联起来。请求必须包括分段数据(x-amz-SHA256-tree-hash标头)的 SHA256 树形哈希、整个有效负载(x-amz-content-sha256标头)的 SHA256 线性哈希、字节范围(Content-Range标头)以及以字节为单位的部分长度(Content-Length标头)。

语法

PUT /AccountId/vaults/VaultName/multipart-uploads/uploadID HTTP/1.1 Host: glacier.Region.amazonaws.com Date: Date Authorization: SignatureValue Content-Range: ContentRange Content-Length: PayloadSize Content-Type: application/octet-stream x-amz-sha256-tree-hash: Checksum of the part x-amz-content-sha256: Checksum of the entire payload x-amz-glacier-version: 2012-06-01

注意

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

请求参数

此操作不使用请求参数。

请求标头

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

名称 说明 必填
Content-Length

标识段的长度(以字节为单位)。

类型:字符串

默认值:无

限制:无

Content-Range

标识将在此段中上传的拼组档案中的字节范围。Amazon Glacier 使用这些信息按正确的顺序组装档案。此标头的格式遵循 RFC 2616。示例标头为 Content-Range:bytes 0-4194303/*

类型:字符串

默认值:无

约束:范围不能大于您在启动分段上传时指定的段大小。

x-amz-content-sha256

上传的有效载荷的 SHA256 校验和(线性哈希)。这不是您在 x-amz-sha256-tree-hash 标头中指定的相同值。

类型:字符串

默认值:无

限制:无

x-amz-sha256-tree-hash

指定正在上传的数据的 SHA256 树形哈希。有关计算 SHA256 树形哈希的信息,请参见计算校验和

类型:字符串

默认值:无

限制:无

请求正文

请求正文包含要上传的数据。

响应

成功上传分段后,Amazon Glacier 会返回204 No Content响应。

语法

HTTP/1.1 204 No Content x-amzn-RequestId: x-amzn-RequestId Date: Date x-amz-sha256-tree-hash: ChecksumComputedByAmazonGlacier

响应标头

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

名称 说明
x-amz-sha256-tree-hash

Amazon Glacier 为上传的部分计算的 SHA256 树形哈希。

类型:字符串

响应正文

此操作不返回响应正文。

示例

以下请求会上传一个 4MB 的段。请求设置了字节范围,使它作为档案中的第一段。

示例请求

示例发送 HTTP PUT 请求,以上传一个 4MB 的段。该请求会发送到启动分段上传请求返回的上传 ID 的 URI。Content-Range 标头将该段标识为档案的第一个 4MB 数据段。

PUT /-/vaults/examplevault/multipart-uploads/OW2fM5iVylEpFEMM9_HpKowRapC3vn5sSL39_396UW9zLFUWVrnRHaPjUJddQ5OxSHVXjYtrN47NBZ-khxOjyEXAMPLE HTTP/1.1 Host: glacier.us-west-2.amazonaws.com Date: Wed, 10 Feb 2017 12:00:00 GMT Content-Range:bytes 0-4194303/* x-amz-sha256-tree-hash:c06f7cd4baacb087002a99a5f48bf953 x-amz-content-sha256:726e392cb4d09924dbad1cc0ba3b00c3643d03d14cb4b823e2f041cff612a628 Content-Length: 4194304 Authorization: Authorization=AWS4-HMAC-SHA256 Credential=AKIAIOSFODNN7EXAMPLE/20141123/us-west-2/glacier/aws4_request,SignedHeaders=host;x-amz-content-sha256;x-amz-date;x-amz-glacier-version,Signature=16b9a9e220a37e32f2e7be196b4ebb87120ca7974038210199ac5982e792cace

要上传下一部分,步骤相同;但是,您必须计算要上传的段的新SHA256 树形哈希,并指定新的字节范围以指示该部分在最终装配中的位置。以下请求会使用相同的上传 ID 来上传另一段。该请求会指定之前请求后档案的下一个 4MB 以及 4MB 的段大小。

PUT /-/vaults/examplevault/multipart-uploads/OW2fM5iVylEpFEMM9_HpKowRapC3vn5sSL39_396UW9zLFUWVrnRHaPjUJddQ5OxSHVXjYtrN47NBZ-khxOjyEXAMPLE HTTP/1.1 Host: glacier.us-west-2.amazonaws.com Date: Wed, 10 Feb 2017 12:00:00 GMT Content-Range:bytes 4194304-8388607/* Content-Length: 4194304 x-amz-sha256-tree-hash:f10e02544d651e2c3ce90a4307427493 x-amz-content-sha256:726e392cb4d09924dbad1cc0ba3b00c3643d03d14cb4b823e2f041cff612a628 x-amz-glacier-version: 2012-06-01 Authorization: Authorization=AWS4-HMAC-SHA256 Credential=AKIAIOSFODNN7EXAMPLE/20120525/us-west-2/glacier/aws4_request, SignedHeaders=host;x-amz-content-sha256;x-amz-date;x-amz-glacier-version, Signature=16b9a9e220a37e32f2e7be196b4ebb87120ca7974038210199ac5982e792cace

分段可以按任意顺序上传;Amazon Glacier 使用每个部分的范围规格来确定它们的组装顺序。

响应示例

HTTP/1.1 204 No Content x-amzn-RequestId: AAABZpJrTyioDC_HsOmHae8EZp_uBSJr6cnGOLKp_XJCl-Q x-amz-sha256-tree-hash: c06f7cd4baacb087002a99a5f48bf953 Date: Wed, 10 Feb 2017 12:00:00 GMT