AWS Snowball
用户指南
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

使用适用于 Snowball 的 Amazon S3 Adapter

在下文中,您将大体了解 适用于 Snowball 的 Amazon S3 Adapter,借助该工具,您可以使用 Amazon S3 REST API 操作以编程方式在本地数据中心与 Snowball 之间传输数据。但是,仅部分操作支持此 Amazon S3 REST API,这表示您可以使用这些受支持的 Amazon S3 AWS CLI 命令或其中一个 AWS 开发工具包来传输数据。

如果您的解决方案使用 AWS SDK for Java 版本 1.11.0 或更新版本,则您必须使用以下 S3ClientOptions

  • disableChunkedEncoding() – 表示适配器不支持分块编码。

  • setPathStyleAccess(true) – 将适配器配置为针对所有请求使用路径式访问。

有关更多信息,请参阅Amazon AppStream SDK for Java中的 Class S3ClientOptions.Builder

启动适用于 Snowball 的 Amazon S3 Adapter

要使用 适用于 Snowball 的 Amazon S3 Adapter,请在工作站上的终端中启动该工具,并在传输数据时保持其处于运行状态。

注意

由于您进行数据传输的计算机工作站通常是传输数据的瓶颈所在,我们强烈建议您使用性能强大的计算机作为工作站。理想情况下,它应该能够满足在处理、内存和网络方面的高要求。有关更多信息,请参阅 工作站规格

在启动适配器之前,您需要获取以下信息:

  • Snowball 的 IP 地址 – 在启动适配器时提供 Snowball 的 IP 地址,将告知适配器将传输数据发送到哪个位置。您可以从 Snowball 的电子墨水显示屏上获取此 IP 地址。

  • 任务的清单文件 – 清单文件包含有关任务及其关联权限的重要信息。如果没有清单文件,您将无法访问 Snowball。该文件是一个加密文件,您可以在任务进入 WithCustomer 状态后下载该文件。请使用解锁代码解密清单。您可以从控制台获取清单文件,也可以通过调用任务管理 API 操作以编程方式获取。

  • 任务的解锁代码 – 解锁代码是一个由 29 个字符组成的字符串(含 4 个破折号)。用于解密清单。您可以从 AWS Snowball 管理控制台 获取解锁代码,也可以从作业管理 API 以编程方式获取。

  • 您的 AWS 凭证 – 与 Snowball 的每一次交互都会通过 AWS 签名版本 4 算法进行签名。有关更多信息,请参阅签名版本 4 签名流程。启动 适用于 Snowball 的 Amazon S3 Adapter 时,您将指定要用于签署此通信的 AWS 凭证。默认情况下,适配器使用 home directory/.aws/credentials 文件中指定的凭证 (位于 [default] 配置文件下)。有关如何在本地结合使用签名版本 4 算法和 适用于 Snowball 的 Amazon S3 Adapter 的更多信息,请参阅使用适用于 Snowball 的 Amazon S3 API 适配器进行授权

获取以上信息后,您便已准备就绪,可以开始在您的工作站启动适配器了。此流程包括下列步骤。

启动适配器

  1. 在已安装适配器的工作站中打开一个终端窗口。

  2. 导航至您安装 snowball-adapter-operating_system 目录的目录。

  3. 导航至 bin 子目录。

  4. 键入以下命令,以启动适配器:./snowball-adapter -i Snowball IP address -m path to manifest file -u 29 character unlock code

注意

如果您在启动适配器时未指定任何 AWS 凭证,则将使用 home directory/.aws/credentials 文件中的默认配置文件。

适用于 Snowball 的 Amazon S3 Adapter 现已在您的工作站上启动。适配器运行时,请保持此终端窗口处于打开状态。如果您要使用 AWS CLI 将数据传输到 Snowball,请打开另一个终端窗口,然后从该窗口运行 AWS CLI 命令。

使用适配器获取 Snowball 的状态

您可以向 适用于 Snowball 的 Amazon S3 Adapter 发起 HEAD 请求,以获取 Snowball 的状态。您会收到 XML 文档格式的状态响应。此类 XML 文档包括存储信息、延迟信息、版本号等。

您不能使用 AWS CLI 或任何 AWS SDK 在此工具中检索状态。但是,您可以在适配器上运行 HEAD 命令,通过线路轻松测试 curl 请求,具体示例如下。

curl -H "Authorization Header" -X HEAD http://192.0.2.0:8080

注意

请求获取 Snowball 的状态时,您必须添加授权标头。有关更多信息,请参阅利用签名版本 4 对 AWS 请求进行签名

以下是该请求返回的 XML 文档示例。

<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <Status xsi:schemaLocation="http://s3.amazonaws.com/doc/2006-03-01/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">     <snowballIp>192.0.2.0</snowballIp>     <snowballPort>8080</snowballPort>     <snowballId>012EXAMPLE01</snowballId>     <totalSpaceInBytes>77223428091904</totalSpaceInBytes>     <freeSpaceInBytes>77223428091904</freeSpaceInBytes>     <jobId>JID850f06EXAMPLE-4EXA-MPLE-2EXAMPLEab00</jobId>     <snowballServerVersion>1.0.1</snowballServerVersion>     <snowballServerBuild>2016-08-22.5729552357</snowballServerBuild>     <snowballAdapterVersion>Version 1.0</snowballAdapterVersion>     <snowballRoundTripLatencyInMillis>1</snowballRoundTripLatencyInMillis> </Status>

Snowball 不支持的 Amazon S3 功能

使用 适用于 Snowball 的 Amazon S3 Adapter,您可以以编程方式通过 Amazon S3 API 操作在 Snowball 中传输数据。但是,并非所有 Amazon S3 传输功能和 API 操作均支持用于 Snowball 设备。有关支持的功能的更多信息,请参阅以下内容:

不支持这些主题中未明确列出的任何功能或操作。例如,以下功能和操作不支持用于 Snowball: