

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

如果您正在寻找归档存储解决方案，建议使用 Amazon S3 中的 Amazon Glacier 存储类别 S3 Glacier Instant Retrieval、S3 Glacier Flexible Retrieval 和 S3 Glacier Deep Archive。要了解有关这些存储选项的更多信息，请参阅 [Amazon Glacier 存储类别](https://www.amazonaws.cn/s3/storage-classes/glacier/)。

Amazon Glacier（最初基于保管库的独立服务）不再接受新客户。Amazon Glacier 是一项独立的服务 APIs ，拥有自己的服务，可将数据存储在文件库中，不同于亚马逊 S3 和 Amazon S3 Glacier 存储类别。在 Amazon Glacier 中，您现有的数据将确保安全，并且可以无限期地访问。无需进行迁移。对于低成本、长期的存档存储， Amazon 建议[使用 Amazon S3 Glacier 存储类别，这些存储类别](https://www.amazonaws.cn/s3/storage-classes/glacier/)基于S3存储桶 APIs、完全 Amazon Web Services 区域 可用性、更低的成本和 Amazon 服务集成，可提供卓越的客户体验。如果您希望加强功能，可以考虑使用我们的 [Amazon 将数据从 Amazon Glacier 文件库传输到 Amazon S3 Glacier 存储类别的解决方案指南](https://www.amazonaws.cn/solutions/guidance/data-transfer-from-amazon-s3-glacier-vaults-to-amazon-s3/)，迁移到 Amazon S3 Glacier 存储类别。

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

# 上传段（PUT uploadID）
<a name="api-upload-part"></a>

## 描述
<a name="api-job-get-description"></a>

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

有关分段上传的信息，请参阅[分段上传大型档案（分段上传）](uploading-archive-mpu.md)。

 

如果以下任何条件成立，则 Amazon Glacier（Amazon Glacier）会拒绝您的上传段请求：

 
+ **SHA256 树形哈希不匹配** – 为了确保段数据在传输中不会损坏，您可以计算段的 SHA256 树形哈希，并将它包括在您的请求中。收到段数据后，Amazon Glacier 也会计算 SHA256 树形哈希。如果这两个哈希值不匹配，则操作会失败。有关计算 SHA256 树形哈希的信息，请参阅[计算校验和](checksum-calculations.md)。
+ **SHA256 线性哈希不匹配** – 由于授权需要，请计算整个上传的有效载荷的 SHA256 线性哈希，并将其包括在您的请求中。有关计算 SHA256 线性哈希的信息，请参阅[计算校验和](checksum-calculations.md)。
+ **段大小不匹配** – 除了最后一段以外，每一段的大小必须与相应的[启动分段上传（POST multipart-uploads）](api-multipart-initiate-upload.md)请求中指定的大小相匹配。最后一段的大小必须是与指定大小相同的大小或者小于指定大小。
**注意**  
如果您上传一段，其大小小于您在启动分段上传请求中指定的段大小，并且该段不是最后一段，则上传段请求会成功。但是，后续的完成分段上传请求会失败。
+ **范围未对齐** – 请求中的字节范围值未与相应启动请求中指定的段大小对齐。例如，如果您指定 4194304 字节 (4 MB) 的段大小，则 0 到 4194303 字节 (4 MB —1) 以及 4194304 (4 MB) 到 8388607 (8 MB —1) 为有效的段范围。但是，如果您将范围值设置为 2 MB 到 6 MB，则范围与段大小未对齐，上传将失败。

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

## 请求
<a name="api-job-get-requests"></a>

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

### 语法
<a name="api-job-get-requests-syntax"></a>

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

 

**注意**  
`AccountId` 值是拥有文件库的账户的 Amazon Web Services 账户 ID。您可以指定 Amazon Web Services 账户 ID，也可以选择指定“`-`”（连字符），在这种情况下，Amazon Glacier 使用与用来对请求进行签名的凭证相关联的 Amazon Web Services 账户 ID。如果您使用账户 ID，请勿在 ID 中包含任何连字符（-）。

### 请求参数
<a name="api-upload-part-requests-parameters"></a>

此操作不使用请求参数。

### 请求标头
<a name="api-upload-part-requests-headers"></a>

除了所有操作通用的请求标头外，此操作还使用以下请求标头。有关通用请求标头的更多信息，请参阅[通用请求标头](api-common-request-headers.md)。


|  名称  |  描述  |  是否必需  | 
| --- | --- | --- | 
| Content-Length  |  标识段的长度（以字节为单位）。 类型：字符串 默认值：无 约束：无  |  否 | 
| Content-Range  |  标识将在此段中上传的所组装档案中的字节范围。Amazon Glacier 使用此信息按正确的顺序组装档案。此标头的格式遵循 [RFC 2616](http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.16)。标头示例为 `Content-Range:bytes 0-4194303/*`。 类型：字符串 默认值：无 约束：范围不能大于您在启动分段上传时指定的段大小。  |  是 | 
|  x-amz-content-sha256  |  上传的有效载荷的 SHA256 校验和（线性哈希）。这不是您在 `x-amz-sha256-tree-hash` 标头中指定的相同值。 类型：字符串 默认值：无 约束：无  |  是 | 
|  x-amz-sha256-tree-hash​  |  指定要上传的数据的 SHA256 树形哈希。有关计算 SHA256 树形哈希的信息，请参阅[计算校验和](checksum-calculations.md)。 类型：字符串 默认值：无 约束：无  |  是 | 

### 请求正文
<a name="api-job-get-requests-elements"></a>

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

## 响应
<a name="api-job-get-responses"></a>

成功上传段后，Amazon Glacier 返回 `204 No Content` 响应。

### 语法
<a name="api-job-get-response-syntax"></a>

```
1. HTTP/1.1 204 No Content
2. x-amzn-RequestId: x-amzn-RequestId
3. Date: Date
4. x-amz-sha256-tree-hash: ChecksumComputedByAmazonGlacier
```

### 响应标头
<a name="api-job-get-responses-headers"></a>

除了所有操作通用的响应标头外，成功的响应中还包括以下响应标头。有关通用响应标头的更多信息，请参阅[通用响应标头](api-common-response-headers.md)。


|  名称  |  描述  | 
| --- | --- | 
|  x-amz-sha256-tree-hash​  |  Amazon Glacier 为上传的段计算的 SHA256 树形哈希。 类型：字符串  | 

### 响应正文
<a name="api-job-get-responses-elements"></a>

此操作不返回响应正文。

## 示例
<a name="api-job-get-examples"></a>

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

### 请求示例
<a name="api-job-get-examples-sample-request"></a>

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

```
1. PUT /-/vaults/examplevault/multipart-uploads/OW2fM5iVylEpFEMM9_HpKowRapC3vn5sSL39_396UW9zLFUWVrnRHaPjUJddQ5OxSHVXjYtrN47NBZ-khxOjyEXAMPLE HTTP/1.1
2. Host: glacier.us-west-2.amazonaws.com
3. Date: Wed, 10 Feb 2017 12:00:00 GMT
4. Content-Range:bytes 0-4194303/*
5. x-amz-sha256-tree-hash:c06f7cd4baacb087002a99a5f48bf953
6. x-amz-content-sha256:726e392cb4d09924dbad1cc0ba3b00c3643d03d14cb4b823e2f041cff612a628
7. Content-Length: 4194304
8. 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 的段大小。

```
1. PUT /-/vaults/examplevault/multipart-uploads/OW2fM5iVylEpFEMM9_HpKowRapC3vn5sSL39_396UW9zLFUWVrnRHaPjUJddQ5OxSHVXjYtrN47NBZ-khxOjyEXAMPLE HTTP/1.1
2. Host: glacier.us-west-2.amazonaws.com
3. Date: Wed, 10 Feb 2017 12:00:00 GMT
4. Content-Range:bytes 4194304-8388607/*
5. Content-Length: 4194304
6. x-amz-sha256-tree-hash:f10e02544d651e2c3ce90a4307427493
7. x-amz-content-sha256:726e392cb4d09924dbad1cc0ba3b00c3643d03d14cb4b823e2f041cff612a628
8. x-amz-glacier-version: 2012-06-01
9. 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 会使用每一段的范围说明来确定组装这些段的顺序。

### 响应示例
<a name="api-job-get-examples-sample-response"></a>

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

## 相关部分
<a name="related-sections-upload-part"></a>

 
+ [启动分段上传（POST multipart-uploads）](api-multipart-initiate-upload.md)
+ [上传段（PUT uploadID）](#api-upload-part)
+ [完成分段上传（POST uploadID）](api-multipart-complete-upload.md)
+ [中止分段上传（DELETE uploadID）](api-multipart-abort-upload.md)
+ [列出分段上传（GET multipart-uploads）](api-multipart-list-uploads.md)
+ [列出段（GET uploadID）](api-multipart-list-parts.md)
+ [分段上传大型档案（分段上传）](uploading-archive-mpu.md)
+ [适用于 Amazon Glacier 的 Identity and Access Management](security-iam.md)