本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
将 Amazon S3 适配器用于 Snowball
在接下来的内容中,您将大体了解适用于 Snowball 的 Amazon S3 适配器,以便能够使用 Amazon S3 REST API 操作以编程方式在本地数据中心与 Snowball 之间传输数据。此 Amazon S3 REST API 支持仅限于操作的子集,这表示您可以使用受支持的 Amazon S3 的子集。Amazon CLI命令或其中一个Amazon用于传输数据的开发工具包。
如果您的解决方案使用 Amazon SDK for Java 版本 1.11.0 或更新版本,则您必须使用以下 S3ClientOptions
:
-
disableChunkedEncoding()
表示适配器不支持分块编码。 -
setPathStyleAccess(true)
— 将适配器配置为针对所有请求使用路径式访问。
有关更多信息,请参阅 。S3 类客户端选项。构建器在 Amazon 中 AppStream SDK for Java。
主题
启动 Amazon S3 Adapter for Snowball
要使用 Amazon S3 Adapter for Snowball,请在工作站上的终端中启动该适配器,并在传输数据时保持其处于运行状态。
由于您进行数据传输的计算机工作站通常是传输数据的瓶颈所在,我们强烈建议您使用性能强大的计算机作为工作站。理想情况下,它应该能够满足在处理、内存和网络方面的高要求。有关更多信息,请参阅 工作站规格。
在启动适配器之前,您需要获取以下信息:
-
Snowball 的 IP 地址— 在启动适配器时提供 Snowball 的 IP 地址,会告知适配器将传输数据发送到哪个位置。您可以从 Snowball 上的电子墨水显示屏上获取此 IP 地址。
-
作业的清单文件— 清单文件包含有关任务及其关联的权限的重要信息。如果没有清单文件,您将无法访问 Snowball。该文件是一个加密文件,您可以在任务进入
WithCustomer
状态后下载该文件。请使用解锁代码解密清单。您可以从控制台获取清单文件,也可以通过调用任务管理 API 操作以编程方式获取。 -
工作的解锁代码— 解锁代码为 29 个字符的字符串,其中包括 4 个破折号。用于解密清单。您可以从获取解锁代码Amazon Snow 系列管理控制台,或者以编程方式从作业管理 API 中进行。
-
您的Amazon Web Services证书— 与 Snowball 的每次互动都是用Amazon签名版本 4 算法。有关更多信息,请参阅签名版本 4 签名流程。启动适用于 Snowball 的 Amazon S3 Adapter 时,您可以指定Amazon要用于签署此通信的凭据。默认情况下,适配器使用
home directory
/.aws/credentials 文件中指定的凭证 (位于 [default] 配置文件下)。有关如何在本地结合使用 Amazon S3 Adapter for Snowball 的更多信息,请参阅。使用适用于 Snowball 的 Amazon S3 API 适配器进行授权.
获取以上信息后,您便已准备就绪,可以开始在您的工作站启动适配器了。此流程包括下列步骤。
启动适配器
-
在已安装适配器的工作站中打开一个终端窗口。
-
导航至您安装 snowball-adapter-
operating_system
目录的目录。 -
导航至 bin 子目录。
-
键入以下命令,以启动适配器:
./snowball-adapter -i
。Snowball IP address
-mpath to manifest file
-u29 character unlock code
如果您没有指定任何Amazon Web Services启动适配器时的凭证,中的默认配置文件。
已使用文件。home directory
/.aws/credentials
Amazon S3 Snowball 适配器现已在您的工作站上启动。适配器运行时,请保持此终端窗口处于打开状态。如果你打算使用Amazon CLI要将数据传输到 Snowball,请打开另一个终端窗口,然后运行您的Amazon CLI来自那里的命令。
使用适配器获取 Snowball 的状态
您可以启动 Snowball 的状态HEAD
请求 Amazon S3 Adapter for Snowball。您会收到 XML 文档格式的状态响应。此类 XML 文档包括存储信息、延迟信息、版本号等。
您不能使用Amazon CLI或任何AmazonSDK 可以在此中检索状态。但是,您可以在适配器上运行 HEAD
命令,通过线路轻松测试 curl
请求,具体示例如下。
curl -H "
Authorization Header
" -X HEAD http://192.0.2.0:8080
请求获取 Snowball 的状态时,您必须添加授权标头。有关更多信息,请参阅 。签名Amazon具有签名版本 4 的请求.
以下是该请求返回的 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 功能
使用 Amazon S3 Adapter for Snowball,您可以以编程方式通过 Amazon S3 API 操作在 Snowball 中传输数据。但是,并非所有 Amazon S3 传输功能和 API 操作均支持用于 Snowball 设备。有关支持的功能的更多信息,请参阅以下内容:
不支持这些主题中未明确列出的任何功能或操作。例如,以下功能和操作不支持用于 Snowball:
-
TransferManager— 此实用程序使用适用 SDK for Java 的开发工具包将文件从本地环境传输至 Amazon S3。考虑改为将支持的 API 操作或 Amazon CLI 命令与适配器结合使用。
-
GET 存储桶(列出对象)版本 2GET 操作的此实施返回存储库中的部分或全部 (最多 1,000 个) 对象。考虑使用 GET 存储桶(列出对象)版本 1 操作或 ls Amazon CLI 命令。