本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用 Amazon S3 Adapter
在下文中,您将大体了解适用于 Snowball 的 Amazon S3 适配器,以便能够使用 Amazon S3 REST API 操作以编程方式在本地数据中心与 Snowball 之间传输数据。但是,仅部分操作支持此 Amazon S3 REST API,这表示您可以使用这些受支持的 Amazon S3Amazon CLI命令或其中之一Amazon用于传输数据的开发工具包。
如果您的解决方案使用 Amazon SDK for Java 版本 1.11.0 或更新版本,则您必须使用以下 S3ClientOptions
:
-
disableChunkedEncoding()
— 表示适配器不支持分块编码。 -
setPathStyleAccess(true)
— 将适配器配置为针对所有请求使用路径式访问。
有关更多信息,请参阅S3ClientOptions.BuildAmazon AppStream SDK for Java
主题
启动 Amazon S3 Adapter
要使用 Amazon S3 Adapter for 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] 配置文件下)。有关如何在本地结合使用适用于 Snowball 的 Amazon S3 Adapter 的更多信息,请参阅使用 Amazon S3 API 适配器对 Snowball 进行授权.
获取以上信息后,您便已准备就绪,可以开始在您的工作站启动适配器了。此流程包括下列步骤。
启动适配器
-
在已安装适配器的工作站中打开一个终端窗口。
-
导航至您安装 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
适用于 Snowball 的Amazon S3 Adapter 现已在您的工作站上启动。适配器运行时,请保持此终端窗口处于打开状态。如果你要使用Amazon CLI要将数据传输到 Snowball,请打开另一个终端窗口,然后运行您的Amazon CLI来自那里的命令。
使用适配器获取Snowball 的状态
您可以通过启动 Snowball 的状态来获取的状态HEAD
向Amazon S3 Adapter 请求使用 SSnowball ter。您会收到 XML 文档格式的状态响应。此类 XML 文档包括存储信息、延迟信息、版本号等。
您不能使用Amazon CLI或任何Amazon用于在此检索状态的 SDK。但是,您可以在适配器上运行 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>
不支持的 Amazon S3 功能
使用适用于 Snowball 的 Amazon S3 Adapter,您可以以编程方式通过 Amazon S3 API 操作在 Snowball 中传输数据。但是,并非所有的 Amazon S3 传输功能和 API 操作均支持用于 Snowball 设备。有关支持的功能的更多信息,请参阅以下内容:
不支持这些主题中未明确列出的任何功能或操作。例如,以下功能和操作不支持用于 Snowball:
-
TransferManager— 此实用程序使用适用于 Java 的软件开发工具将文件从本地环境传输至 Amazon S3。考虑改为将支持的 API 操作或 Amazon CLI 命令与适配器结合使用。
-
GET Bucket (List Object— 此 GET 的实施返回存储库中的部分或全部 (最多 1,000 个) 对象。考虑使用 GET 存储桶(列出对象)版本 1 操作或 ls Amazon CLI 命令。