

# 教程：开始使用 S3 Files
<a name="s3-files-getting-started"></a>

在本教程中，您将创建一个 S3 文件系统并将其挂载到 EC2 实例上。然后，您可以测试基本的文件操作。您可以通过 S3 控制台或 AWS CLI 来开始使用 S3 Files。

## 通过 AWS 控制台开始使用 S3 Files
<a name="s3-files-getting-started-console"></a>

S3 控制台上的 S3 Files 工作流程由以下步骤组成：
+ 创建 S3 文件系统。
+ 在 EC2 实例上挂载文件系统并运行文件系统操作。

### 先决条件
<a name="s3-files-getting-started-console-prereqs"></a>

在开始之前，确保满足以下条件：
+ 您已经完成了 [AWS 账户和计算设置](s3-files-prereq-policies.md#s3-files-prereq-account-setup)。
+ 您具有设置好的 Amazon EC2，并且熟悉如何启动 EC2 实例。有关更多信息，请参阅《Amazon EC2 用户指南》中的 [Amazon EC2 入门](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EC2_GetStarted.html)**。对于本教程，请使用 EC2 实例的默认 VPC。
+ 您已将[用于将文件系统附加到 AWS 计算资源的 IAM 角色](s3-files-prereq-policies.md#s3-files-prereq-iam-compute-role)附加到 EC2 实例，因此它可以与 S3 文件系统和 S3 存储桶进行交互。

### 步骤 1：创建 S3 文件系统
<a name="s3-files-getting-started-console-step1"></a>
+ 通过以下网址打开 Amazon S3 控制台：[https://console.aws.amazon.com/s3/](https://console.aws.amazon.com/s3/)。
+ 在页面顶部的导航栏中，确认您位于 EC2 实例和 S3 存储桶所在的 AWS 区域中。
+ 在左侧导航窗格中，选择**通用存储桶**。
+ 选择要为其创建文件系统的存储桶。
+ 选择**文件系统**选项卡。
+ 选择**创建文件系统**。
+ 审核和确认您的 VPC。对于本教程，请使用默认 VPC。
+ 选择**创建**。

使用 AWS 管理控制台创建文件系统时，S3 Files 会自动在默认 VPC 的每个可用区中创建一个挂载目标，并为该文件系统创建一个接入点。这可能需要几分钟的时间。创建完所有资源后，您的文件系统将变得可供下一步使用。

### 步骤 2：将文件系统挂载到 EC2 实例上
<a name="s3-files-getting-started-console-step2"></a>
+ 在文件系统**概述**页面上，在**附加到 EC2 实例**下选择**附加**。这将打开一个新页面，用于将文件系统挂载到 EC2 实例上。
+ 从**可用 EC2 实例**下拉列表中选择所需的 EC2 实例。
+ 输入 EC2 实例上您要在其中挂载文件系统的路径。例如 `/mnt/s3files/`。
+ 确保您已在 EC2 实例和挂载目标上配置了正确的[安全组](s3-files-prereq-policies.md#s3-files-prereq-security-groups)，以支持所需的流量进行流动。
+ 确保向您的 EC2 实例附加了具有所需权限的正确 IAM 角色，以便它可以与您的 S3 文件系统和 S3 存储桶进行交互。有关更多信息，请参阅 [用于将文件系统附加到 AWS 计算资源的 IAM 角色](s3-files-prereq-policies.md#s3-files-prereq-iam-compute-role)。对于本教程，您可以考虑通过将托管式策略 `AmazonS3FilesClientFullAccess` 添加到 EC2 实例的 IAM 角色，来向客户端授予完全访问权限。
+ 按照页面上显示的附加说明来打开 CloudShell、挂载文件系统并运行基本的文件系统操作。

## 通过 AWS CLI 开始使用 S3 Files
<a name="s3-files-getting-started-cli"></a>

AWS CLI 上的 S3 Files 工作流程由以下步骤组成：

1. 创建您的文件系统。

1. 为文件系统创建挂载目标。

1. 使用挂载目标在 EC2 实例上挂载文件系统。

1. 测试文件操作，例如列出目录、向文件写入文本、读取文件和复制文件。然后，验证您的更改是否反映在 S3 存储桶中。

### 先决条件
<a name="s3-files-getting-started-cli-prereqs"></a>

在开始之前，确保满足以下条件：
+ 您已经安装并配置了 AWS CLI。有关更多信息，请参阅[安装或更新到最新版本的 AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html)。
+ 您已完成 [S3 Files 的先决条件](s3-files-prereq-policies.md)中描述的所有先决条件。
+ 您具有设置好的 Amazon EC2，并且熟悉如何启动 EC2 实例。您需要一个 AWS 账户、一个具有管理访问权限的用户、一个密钥对和一个安全组。有关更多信息，请参阅《Amazon EC2 用户指南》中的 [Amazon EC2 入门](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EC2_GetStarted.html)**。

### 步骤 1：创建 S3 文件系统
<a name="s3-files-getting-started-cli-step1"></a>

[连接到您的 EC2 实例](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/connect.html)。运行 `create-file-system` 命令以创建文件系统。

```
aws s3files create-file-system --region {{aws-region}} --bucket {{bucket-arn}} --role-arn {{iam-role}}
```

将以下值替换为您所需的值：
+ {{aws-region}}：存储桶的 AWS 区域。例如 `us-east-1`。
+ {{bucket-arn}}：S3 存储桶的 ARN。
+ {{iam-role}}：S3 Files 代入以读取和写入 S3 存储桶的 IAM 角色的 ARN。确保您已向此 IAM 角色添加了正确的权限。有关更多信息，请参阅 [用于从文件系统访问您的存储桶的 IAM 角色](s3-files-prereq-policies.md#s3-files-prereq-iam-creation-role)。

成功创建文件系统后，S3 Files 以 JSON 返回文件系统描述。记下文件系统 ID 以进行下一步。

### 步骤 2：创建挂载目标
<a name="s3-files-getting-started-cli-step2"></a>

挂载目标可在单个可用区内为您的 VPC 中的文件系统提供网络访问权限。您需要一个挂载目标，才能从计算资源访问您的文件系统。每个可用区最多只能创建一个挂载目标。我们建议在您运营的每个可用区中都创建一个挂载目标。

运行以下 `create-mount-target` 命令为文件系统创建挂载目标。您必须确保 {{subnet-id}} 与 EC2 实例位于同一 VPC 中。您必须在与 EC2 实例相同的可用区中创建挂载目标。

```
aws s3files create-mount-target --region {{aws-region}} --file-system-id {{file-system-id}} --subnet-id {{subnet-id}}
```

此处，{{file-system-id}} 是您在 `create-file-system` 命令的响应中收到的文件系统 ID。创建挂载目标最多约需 5 分钟时间。

### 步骤 3：将文件系统挂载到 EC2 实例上
<a name="s3-files-getting-started-cli-step3"></a>

在挂载文件系统之前，请确保在计算资源和挂载目标上配置了正确的[安全组](s3-files-prereq-policies.md#s3-files-prereq-security-groups)，以支持所需的流量进行流动。有关安全组的更多详细信息，请访问 [VPC 用户指南](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-security-groups.html)。

运行以下命令以挂载文件系统：
+ 使用以下命令创建要用作文件系统装载点的目录 `/mnt/s3files`：

  ```
  sudo mkdir /mnt/s3files
  ```
+ 挂载文件系统：

  ```
  sudo mount -t s3files {{file-system-id}}:/ /mnt/s3files
  ```

如果您没有文件系统 ID，则可以运行以下命令进行查找：

```
aws s3files get-file-system --region {{aws-region}} --file-system-id {{file-system-id}}
```

### 步骤 4：测试文件操作
<a name="s3-files-getting-started-cli-step4"></a>

在已挂载的文件系统上测试基本的文件操作，如下所示：
+ 切换到您挂载的目录：

  ```
  cd /mnt/s3files
  ```
+ 您可以列出目录的内容，以检查源存储桶或前缀的内容是否已导入。同步通常在几秒钟内发生，但可能需要更长的时间，特别是对于第一个文件。如果您的存储桶为空，则以下命令也将返回空结果。

  ```
  ls
  ```
+ 也可以测试其它文件操作：
  + 创建 文件：

    ```
    echo "Hello, S3 Files!" > test.txt
    ```
  + 读取文件：

    ```
    cat test.txt
    ```
  + 创建目录：

    ```
    mkdir test-directory
    ```
  + 将文件复制到目录：

    ```
    cp /mnt/s3files/test.txt /mnt/s3files/test-directory/
    ```

然后，您可以转到您的 S3 存储桶，并检查目录 `test-directory` 是否反映在您的存储桶中。请注意，将更改同步回您的 S3 存储桶可能需要大约 1 分钟。