本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用 Amazon S3 接口传输文件
以下是 Amazon S3 接口的概述,您可以使用该接口通过 Amazon S3 REST API 操作以编程方式在Amazon Snowball Edge设备之间传输数据。这种 Amazon S3 REST API 支持仅限于部分操作。您可以将此操作子集与其中一个Amazon SDK 一起使用,以编程方式传输数据。您也可以使用 Amazon S3 支持的Amazon Command Line Interface (Amazon CLI) 命令子集以编程方式传输数据。
如果您的解决方案使用 Amazon SDK for Java 版本 1.11.0 或更新版本,则您必须使用以下 S3ClientOptions
:
-
disableChunkedEncoding()
— 表示该接口不支持分块编码。 -
setPathStyleAccess(true)
— 将接口配置为对所有请求使用路径式访问权限。
有关更多信息,请参阅适用于 Java 的亚马逊 S AppStream DK 中的 Class S3ClientOptions .Builder。
重要
我们建议您一次仅使用一种方法在Amazon Snowball Edge设备上的本地存储桶中读取和写入数据。在同一个存储桶上同时使用文件接口和 Amazon S3 接口可能会导致读/写冲突。
的速率限制Amazon Snowball Edge详细说明了限制。
要使Amazon服务在 Snowball Edge 上正常运行,必须允许这些服务的端口。有关详细信息,请参阅在Amazon Snowball边缘设备上使用Amazon服务所需的端口。
主题
下载并安装 Amazon CLI 版本 1.16.14
目前,Snowball Edge 设备仅支持 1.16.14 及更早版本的Amazon CLI。使用以下过程适用于您的操作系统执行以下过程来执行以下步骤。
请Amazon CLI在 Linux 操作系统上安装
运行以下链式命令:
curl "https://s3.amazonaws.com/aws-cli/awscli-bundle-1.16.14.zip" -o "awscli-bundle.zip";unzip awscli-bundle.zip;sudo ./awscli-bundle/install -i /usr/local/aws -b /usr/local/bin/aws;/usr/local/bin/aws --version;
请Amazon CLI在 Windows 操作系统上安装
为操作以下几种操作系统下载并运行以下几种安装程序文件:
在 Snowball Edge 上使用Amazon CLI和 API 操作
使用Amazon CLI或 API 操作在 Snowball Edge 上发出 IAM、Amazon S3 和 Amazon EC2 命令时,必须将区域指定为 “”snow
。 您可以使用命令本身Amazon configure
或在命令本身内执行此操作,如以下示例所示。
aws configure --profile abc Amazon Access Key ID [None]: AKIAIOSFODNN7EXAMPLE Amazon Secret Access Key [None]: 1234567 Default region name [None]: snow Default output format [None]: json
或者
aws s3 ls --profile snowballEdge --endpoint http://192.0.2.0:8080 --region snow
使用 Amazon S3 API 接口进行授权Amazon Snowball
当您使用 Amazon S3 接口时,默认情况下,每次交互都使用Amazon签名版本 4 算法进行签名。此授权仅用于验证从其源传输到接口的数据。所有加密和解密工作都在设备上完成。未加密的数据从不会存储在设备上。
使用该界面时,请记以下几点:
-
要获取本地 Amazon S3 凭证来签署您对Amazon Snowball Edge设备的请求,请运行
snowballEdge list-access-keys
和 SsnowballEdge get-secret-access-keys
nowball Edge 客户端命令。有关更多信息,请参阅 使用 Snowball Edge 客户端。这些本地 Amazon S3 证书包括一对密钥:访问密钥和密钥。这些密钥仅可用于与您的任务关联的设备。它们不能在中使用,Amazon Web Services 云因为它们没有Amazon Identity and Access Management (IAM) 对应物。 -
您使用的Amazon Web Services凭证不会更改加密密钥。使用 Signature Version 4 算法进行签名仅用于验证从其源传输到接口的数据。因此,此签名绝不会影响用于在 Snowball 上加密数据的加密密钥。
获取和使用本地 Amazon S3 证书
与 Snowball Edge 的每次交互都使用Amazon签名版本 4 算法进行签名。有关该算法的更多信息,请参阅Amazon一般参考中的签名版本 4 签名流程。
通过运行和 Snowball Edge 客户端信息,您可以获得本地 Amazon S3 证书,以签署您向 SsnowballEdge get-secret-access-key
nowball Edge 客户端边缘设备提出的请求,请参阅获取凭证。snowballEdge list-access-keys
这些本地 Amazon S3 凭证包含一对密钥:一个访问密钥 ID 和一个秘密密钥。这些凭证仅可用于与您的作业关联的设备。它们不能在中使用,Amazon Web Services 云因为它们没有 IAM 对应物。
您可以将这些凭证添加到服务器上的Amazon Web Services证书文件中。默认的凭证配置文件通常位于 ~/.aws/credentials
,但该位置可能因平台而异。该文件由许多Amazon SDK 共享,并由Amazon CLI. 您可以使用配置文件名称保存本地凭证,如以下示例所示。
[snowballEdge] aws_access_key_id = AKIAIOSFODNN7EXAMPLE aws_secret_access_key = wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
将 S3 接口指定为Amazon CLI终端节点
当您使用Amazon CLI向Amazon Snowball Edge设备发出命令时,您指定终端节点为 Amazon S3 接口。您可以选择使用 HTTPS 终端节点,或不安全的 HTTP 终端节点,如下所示。
HTTPS 安全终端节点
aws s3 ls --profile snowballEdge --endpoint https://192.0.2.0:8443 --ca-bundle
path/to/certificate
HTTP 不安全终端节点
aws s3 ls --profile snowballEdge --endpoint http://192.0.2.0:8080
如果您使用的 HTTPS 终端节点8443
,则您的数据会安全地从服务器传输到 Snowball Edge。这种加密是由 Snowball Edge 在获得新 IP 地址时生成的证书来确保的。在您具有证书后,可以将其保存到本地 ca-bundle.pem
文件。然后,可以将 Amazon CLI 配置文件配置为包含您的证书的路径,如下所述。
将您的证书与接口终端节点关联
-
将 Snowball Edge Connect 电源和网络,然后将其打开。
-
在设备启动完成后,记下其在本地网络上的 IP 地址。
-
在网络上的终端上,确保你可以 ping Snowball Edge。
-
在您的终端中运行
snowballEdge get-certificate
命令。有关此命令的更多信息,请参阅 获取您的证书以传输数据。 -
将
snowballEdge get-certificate
命令的输出保存到文件,例如ca-bundle.pem
。 -
从您的终端运行以下命令。
aws configure set profile.snowballEdge.ca_bundle /path/to/ca-bundle.pem
在您完成此过程之后,可以使用这些本地凭证、您的证书和您指定的终端节点运行 CLI 命令,如以下示例所示。
aws s3 ls --profile snowballEdge --endpoint https://192.0.2.0:8443
Snowball Edge 不支持 Amazon S3 功能
使用 Amazon S3 接口,您可以通过 Amazon S3 API 操作以编程方式在 Snowball Edge 之间传输数据。但是,并非所有 Amazon S3 传输功能和 API 操作都支持 Snowball Edge 设备使用。例如,以下功能和操作不支持与 Snowball Edge 一起使用:
-
TransferManager— 此实用程序使用适用于 Java 的开发工具包将文件从本地环境传输到 Amazon S3。考虑改为在接口上使用支持的 API 操作或Amazon CLI命令。
-
GE@@ T 存储桶(列出对象)版本 2 — GET 操作的此实现返回存储桶中的部分或全部(最多 1,000 个)对象。考虑使用 GET 存储桶(列出对象)版本 1 操作或 ls Amazon CLI 命令。