上传段(PUT uploadID) - Amazon Glacier

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

如果您正在寻找归档存储解决方案,建议使用 Amazon S3 中的 Amazon Glacier 存储类别 S3 Glacier Instant Retrieval、S3 Glacier Flexible Retrieval 和 S3 Glacier Deep Archive。要了解有关这些存储选项的更多信息,请参阅 Amazon Glacier 存储类别

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

上传段(PUT uploadID)

描述

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

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

如果以下任何条件成立,则 Amazon Glacier(Amazon Glacier)会拒绝您的上传段请求:

  • SHA256 树形哈希不匹配 – 为了确保段数据在传输中不会损坏,您可以计算段的 SHA256 树形哈希,并将它包括在您的请求中。收到段数据后,Amazon Glacier 也会计算 SHA256 树形哈希。如果这两个哈希值不匹配,则操作会失败。有关计算 SHA256 树形哈希的信息,请参阅计算校验和

  • SHA256 线性哈希不匹配 – 由于授权需要,请计算整个上传的有效载荷的 SHA256 线性哈希,并将其包括在您的请求中。有关计算 SHA256 线性哈希的信息,请参阅计算校验和

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

    注意

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

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

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

请求

您将该 HTTP PUT 请求发送到启动分段上传请求返回的上传 ID 的 URI。Amazon Glacier 使用上传 ID 将段上传与特定的分段上传关联起来。请求必须包括段数据的 SHA256 树形哈希(x-amz-SHA256-tree-hash 标头)、整个有效载荷的 SHA256 线性哈希(x-amz-content-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 树形哈希。

类型:字符串

响应正文

此操作不返回响应正文。

示例

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

请求示例

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

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 来上传另一段。该请求会指定之前请求后档案的下一个 4 MB 以及 4 MB 的段大小。

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