使用 Amazon S3 界面传输文件 - Amazon Snowball Edge 开发人员指南
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

使用 Amazon S3 界面传输文件

以下是 Amazon S3 接口的概述,它可用于以编程方式将数据传入和传出。Amazon Snowball Edge使用 Amazon S3 REST API 操作的设备。此 Amazon S3 REST API 支持仅限于一小部分操作。您可以将这一部分操作与其中一个AmazonSDK 以编程方式传输数据。您也可以使用受支持的子集。Amazon Command Line Interface(Amazon CLI) 用于 Amazon S3 以编程方式传输数据的命令。

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

  • disableChunkedEncoding()— 表示接口不支持分块编码。

  • setPathStyleAccess(true)— 将接口配置为对所有请求使用路径式访问。

有关更多信息,请参阅 。S3 类客户端选项。构建器中的亚马逊 AppStream 适用于 Java 的开发工具包.

重要

建议您一次只使用一种方法读取并将数据写入中的本地存储桶。Amazon Snowball Edge设备。同时在同一存储桶上使用文件接口和 Amazon S3 接口会导致读取/写入冲突。

适用于Amazon要使服务在 Snowball Edge 上正常工作,您必须允许服务的端口。有关详细信息,请参阅 使用所需的端口Amazon上的服务Amazon SnowballEdge 设备

下载并安装 Amazon CLI 版本 1.16.14

目前,Snowball Edge 设备仅支持版本 1.16.14 及更早版本的Amazon CLI. 您可以从 GitHub 中下载并安装此版本的 Amazon CLI。请使用以下过程执行此任务。

注意

在安装 Amazon CLI 版本 1.16.14 之前,请务必安装 Python 版本 2.6.5+ 或 3.4+。

下载并安装 Amazon CLI 的版本 1.16.14

  1. 卸载现有版本的Amazon CLI. 此步骤对于 Linux 安装是可选的。

    • Windows— 有关更多信息,请参阅卸载Amazon CLI中的Amazon Command Line Interface用户指南.

    • Linux的— 此步骤对于 Linux 安装是可选的。但是,要卸载 Amazon CLI 的现有安装,请从终端运行以下命令。

      sudo rm -rf /usr/local/aws sudo rm /usr/local/bin/aws
  2. 下载Amazon CLI作为.zip 文件来自 的Amazon GitHub 它所在的存储库。

  3. 使用以下过程之一从 1.16.14.zip 文件安装 Amazon CLI 版本 1.16.14:

    • Windows

      1. 将存档提取到您计算机上的某个位置,例如:C:\Users\username\aws_cli\aws-cli-1.16.14

      2. 打开命令提示符,导航到将存档提取到的文件夹,然后使用以下命令运行设置脚本。

        py setup.py install
      3. 将 Amazon CLI 添加到您的 PATH 环境变量。

      执行此操作将安装的版本 1.16.14Amazon CLI.

    • Linux

      1. 将存档提取到您计算机上的某个位置,例如:/home/username/aws_cli/aws-cli-1.16.14

      2. 打开终端窗口,导航到将存档提取到的目录,然后使用以下命令运行设置脚本。

        python setup.py install
        注意

        您可能需要使用 sudo 运行该命令。

        此命令将安装的版本 1.16.14Amazon CLI,并覆盖之前安装的任何文件创建的文件Amazon CLI版本。

使用Amazon CLISnowball Edge 上的 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-keyssnowballEdge get-secret-access-keysSnowball Edge 客户端命令。有关更多信息,请参阅 使用 Snowball Edge 客户端。这些本地 Amazon S3 凭证包含一对密钥:一个访问密钥和一个私有密钥。这些密钥仅可用于与您的任务关联的设备。不能在中使用它们Amazon Web Services 云因为他们没有Amazon Identity and Access Management(IAM) 对应商。

  • 加密密密钥不会因什么改变Amazon Web Services你使用的凭据。使用签名版本 4 算法进行签名仅用于验证从数据源传输到接口的数据。因此,此签名永远不会影响用于加密 Snowball 上的数据的加密密钥。

获取并使用本地 Amazon S3 凭证

与 Snowball Edge 的每次交互都会与Amazon签名版本 4 算法。有关该算法的更多信息,请参阅签名版本 4 签名流程中的Amazon一般参考.

通过运行,您可以获取用于为向 Snowball Edge 客户端 Edge 设备发出的请求进行签名的本地 Amazon S3 凭证。snowballEdge list-access-keyssnowballEdge get-secret-access-keySnowball Edge 客户端信息,请参阅获取凭证. 这些本地 Amazon S3 凭证包含一对密钥:一个访问密钥 ID 和一个私有密钥。这些凭证仅可用于与您的作业关联的设备。不能在中使用它们Amazon Web Services 云因为他们没有 IAM 对应商。

您可以将这些凭证添加到Amazon Web Services服务器上的凭证文件。默认的凭证配置文件通常位于 ~/.aws/credentials,但该位置可能因平台而异。此文件由多个AmazonSDK 和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 配置文件配置为包含您的证书的路径,如下所述。

将您的证书与接口终端节点相关联

  1. 将 Snowball Edge 接通电源并 Connect 到网络,然后启动它。

  2. 在设备启动完成后,记下其在本地网络上的 IP 地址。

  3. 从您的网络上的终端,确保您可以 ping Snowball Edge。

  4. 在您的终端中运行 snowballEdge get-certificate 命令。有关此命令的更多信息,请参阅 获取您的证书以传输数据

  5. snowballEdge get-certificate 命令的输出保存到文件,例如 ca-bundle.pem

  6. 从您的终端运行以下命令。

    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: