Amazon Glacier
开发人员指南 (API 版本 2012-06-01)
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 Amazon AWS 入门

Amazon Glacier 数据模型

Amazon Glacier 数据模型的核心概念包括文件库和档案。Amazon Glacier 是一种基于 REST 的 Web 服务。根据 REST,文件库和档案是资源。此外,Amazon Glacier 数据模型还包括任务和通知配置资源。这些资源是对核心资源的补充。

文件库

在 Amazon Glacier 中,文件库是用于存储档案的容器。在创建文件库时,您可以指定名称并选择要在其中创建文件库的 AWS 区域。

每个文件库资源都有唯一的地址。一般格式为:

https://<region-specific endpoint>/<account-id>/vaults/<vaultname>

例如,假设您在 美国西部(俄勒冈)区域 中创建文件库 (examplevault)。随后,此文件库可以按以下 URI 来编址:

https://glacier.us-west-2.amazonaws.com.cn/111122223333/vaults/examplevault

在该 URI 中,

  • glacier.us-west-2.amazonaws.com.cn 标识美国西部(俄勒冈)区域。

  • 111122223333 是拥有该文件库的 AWS 账户 ID。

  • vaults 指的是 AWS 账户拥有的文件库集合。

  • examplevault 标识了文件库集合中的特定文件库。

AWS 账户可以在任何受支持的 AWS 区域创建文件库。有关受支持的 AWS 区域的列表,请参阅访问 Amazon Glacier。在一个区域内,一个账户必须使用唯一的文件库名称。一个 AWS 账户可以在不同的区域创建名称相同的文件库。

您可以在文件库中存储无限多个档案。根据您的业务或应用程序需求,您可以将这些档案存储在一个或多个文件库中。

Amazon Glacier 支持各种文件库操作。请注意,文件库操作是特定于区域的。例如,创建文件库时,您会在特定的区域创建。在请求文件库列表时,您可以从特定的 AWS 区域请求它,并且结果列表仅包括该特定区域内创建的文件库。

存档

档案可以是任何数据(例如,照片、视频或文档),并且是 Amazon Glacier 中的基本存储单位。每个档案都有唯一的 ID 和可选的描述。请注意,您只能在上传档案的过程中指定可选的描述。Amazon Glacier 会为档案分配一个 ID,该 ID 在存储档案的 AWS 区域是唯一的。

每个档案都有唯一的地址。一般格式如下:

https://<region-specific endpoint>/<account-id>/vaults/<vault-name>/archives/<archive-id>

以下是存储在美国西部(俄勒冈)区域的 examplevault 文件库中的档案的示例 URI:

https://glacier.us-west-2.amazonaws.com.cn/111122223333/vaults/examplevault/archives/NkbByEejwEggmBz2fTHgJrg0XBoDfjP4q6iu87-TjhqG6eGoOY9Z8i1_AUyUsuhPAdTqLHy8pTl5nfCFJmDl2yEZONi5L26Omw12vcs01MNGntHEQL8MBfGlqrEXAMPLEArchiveId

您可以在文件库中存储无限多个档案。

此外,Amazon Glacier 数据模型还包括任务和通知配置资源。这些资源是对核心文件库和档案资源的补充。

任务

Amazon Glacier 任务可以对档案执行 select 查询、检索档案或获取文件库的清单。当对档案执行查询时,您会启动一个提供 SQL 查询和 Amazon Glacier 档案对象列表的任务。Amazon Glacier Select 会就地运行查询并将输出结果写入 Amazon S3 中。

在 Amazon Glacier 中,检索档案和文件库清单(档案列表)是异步操作,您首先要在其中启动任务,然后在 Amazon Glacier 完成任务后下载任务输出。

注意

Amazon Glacier 提供了冷存储数据存档解决方案。如果您的应用程序需要一套要求进行实时数据取回的存储解决方案,则您可以考虑使用 Amazon S3。有关详细信息,请参阅 Amazon Simple Storage Service (Amazon S3)

要启动文件库清单任务,您需要提供文件库名称。Select 和档案检索任务需要文件库名称和档案 ID。您还可以提供可选的任务描述来帮助标识任务。

Select、档案检索和文件库清单任务与文件库相关联。在任何时间点,一个文件库可以同时进行多个任务。在您发送任务请求(启动任务)时,Amazon Glacier 会向您返回一个任务 ID,以跟踪该任务。每个任务都会由以下格式的 URI 唯一标识:

https://<region-specific endpoint>/<account-id>/vaults/<vault-name>/jobs/<job-id>

以下是与 examplevault 文件库相关联的任务的示例。

https://glacier.us-west-2.amazonaws.com.cn/111122223333/vaults/examplevault/jobs/HkF9p6o7yjhFx-K3CGl6fuSm6VzW9T7esGQfco8nUXVYwS0jlb5gq1JZ55yHgt5vP54ZShjoQzQVVh7vEXAMPLEjobID

对于每个任务,Amazon Glacier 都会保留相关信息,例如,任务类型、描述、创建日期、完成日期以及任务状态。您可以获取有关特定任务的信息,也可以获取与某个文件库相关联的所有任务的列表。Amazon Glacier 返回的任务列表包括所有正在进行的任务以及最近完成的任务。

通知配置

由于完成任务需要花费时间,因此,Amazon Glacier 支持一种通知机制,以便在任务完成时通知您。您可以将文件库配置为在任务完成时将通知发送到 Amazon Simple Notification Service (Amazon SNS) 主题。您可以在通知配置中为每个文件库指定一个 SNS 主题。

Amazon Glacier 会将通知配置存储为 JSON 文档。以下是示例文件库通知配置:

{ "Topic": "arn:aws:sns:us-west-2:111122223333:mytopic", "Events": ["ArchiveRetrievalCompleted", "InventoryRetrievalCompleted"] }

请注意,通知配置与文件库相关联;每个文件库都可以有一个通知配置。每个通知配置资源都会由以下格式的 URI 唯一标识:

https://<region-specific endpoint>/<account-id>/vaults/<vault-name>/notification-configuration

Amazon Glacier 支持设置、获取和删除通知配置的操作。如果您删除了通知配置,则针对该文件库的任何数据取回操作完成时,系统都不会发送任何通知。