

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

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

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

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

# 完成分段上传（POST uploadID）
<a name="api-multipart-complete-upload"></a>

## 描述
<a name="api-multipart-complete-upload-description"></a>

您可以调用此分段上传操作来通知 Amazon Glacier（Amazon Glacier）所有档案段已上传，使 Amazon Glacier 能够用上传的段来组装档案。

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

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

在请求中，您必须包括对您上传的整个档案进行计算得出的 SHA256 树形哈希。有关计算 SHA256 树形哈希的信息，请参阅[计算校验和](checksum-calculations.md)。在服务器端，Amazon Glacier 还会构造所组装档案的 SHA256 树形哈希。如果值匹配，则 Amazon Glacier 会将档案保存到文件库；否则，它返回错误，并且操作会失败。[列出段（GET uploadID）](api-multipart-list-parts.md)操作可以返回特定分段上传已上传的段的列表。它包括每个已上传段的校验和信息，可以用于解决错误的校验和问题。

此外，Amazon Glacier 还会检查是否有任何缺失的内容范围。上传段时，您可以指定范围值，用于标识每一段在最终档案组装中的位置。组装最终档案时，Amazon Glacier 会检查是否有任何缺失的内容范围；如果有任何缺失的内容范围，则 Amazon Glacier 返回错误，并且完成分段上传操作会失败。

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

## 请求
<a name="api-multipart-complete-upload-requests"></a>

要完成分段上传，您需要将 HTTP POST 请求发送到 Amazon Glacier 因响应您的启动分段上传请求而创建的上传 ID 的 URI。这是您在上传段时使用的相同 URI。除了通用的必需标头以外，您还必须包括整个档案的 SHA256 树形哈希的结果以及该档案的总大小（以字节为单位）。

### 语法
<a name="api-multipart-complete-upload-requests-syntax"></a>

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

 

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

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

此操作不使用请求参数。

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

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


|  名称  |  描述  |  是否必需  | 
| --- | --- | --- | 
| x-amz-archive-size   |  整个档案的总大小（以字节为单位）。此值应为您上传的各段的所有大小之和。 类型：字符串 默认值：无 约束：无  |  是 | 
|  x-amz-sha256-tree-hash​  |  整个档案的 SHA256 树形哈希。它是各段的 SHA256 树形哈希的树形哈希。如果您在请求中指定的值与 Amazon Glacier 对最终组装的档案进行计算得出的 SHA256 树形哈希不匹配，则 Amazon Glacier 返回错误，并且请求会失败。 类型：字符串 默认值：无 约束：无  |  是 | 

### 请求元素
<a name="api-multipart-complete-upload-requests-elements"></a>

此操作不使用请求元素。

## 响应
<a name="api-multipart-complete-upload-responses"></a>

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

### 语法
<a name="api-multipart-complete-upload-responses-syntax"></a>

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

### 响应标头
<a name="api-multipart-complete-upload-responses-headers"></a>

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


|  名称  |  描述  | 
| --- | --- | 
|  Location  |  新创建档案的相对 URI 路径。此 URL 包括 Amazon Glacier 生成的档案 ID。 类型：字符串  | 
|  x-amz-archive-id  |  档案的 ID。此值也包括在 `Location` 标头中，作为该标头的一部分。 类型：字符串  | 

### 响应字段
<a name="api-multipart-complete-upload-responses-elements"></a>

此操作不返回响应正文。

## 示例
<a name="api-multipart-complete-upload-examples"></a>

### 请求示例
<a name="api-multipart-complete-upload-example-request"></a>

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

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

### 响应示例
<a name="api-multipart-complete-upload-example-response"></a>

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

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

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

## 相关部分
<a name="related-sections-complete-mpu"></a>

 
+ [启动分段上传（POST multipart-uploads）](api-multipart-initiate-upload.md)
+ [上传段（PUT uploadID）](api-upload-part.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)
+  [删除档案（DELETE archive）](api-archive-delete.md)
+ [适用于 Amazon Glacier 的 Identity and Access Management](security-iam.md)