教程:在本地计算机和之间复制多个文件AWS CloudShell - AWS CloudShell

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

教程:在本地计算机和之间复制多个文件AWS CloudShell

使用该 CloudShell 接口,您可以在本地计算机和 shell 环境之间一次上传或下载单个文件。要在 CloudShell与本地计算机之间同时复制多个一:

  • Amazon S3:在本地计算机和之间复制文件时,使用 S3 存储桶作为中介 CloudShell。

  • 压缩文件:将多个文件压缩到一个压缩文件夹中,可以使用 CloudShell 界面上传或下载这些文件。

注意

由于 CloudShell 不允许传入的互联网流量,因此目前无法使用诸如scprsync之类的命令在本地计算机和 CloudShell 计算环境之间复制多个文件。

使用 Amazon S3 上传和下载多个文件

先决条件

要使用存储桶和对象,您需要一个 IAM 策略来授予执行以下 Amazon S3 API 操作的权限:

  • s3:CreateBucket

  • s3:PutObject

  • s3:GetObject

有关 Amazon S3 操作的完整列表,请参阅《Amazon Si mple Storage S3 S3:API 参考手册》中的操作

AWS CloudShell使用 Amazon S3 将多个文件上传到

  1. 在中AWS CloudShell,通过运行以下s3命令创建 S3 存储桶:

    aws s3api create-bucket --bucket your-bucket-name --region us-east-1

    如果调用成功,命令行将显示来自 S3 服务的响应:

    { "Location": "/your-bucket-name" }
  2. 将本地计算机中目录中的文件上传到存储桶。以下任一:

    • AWS Management Console:用于 drag-and-drop 将文件和文件夹上传到存储桶。

    • AWS CLI:在本地计算机上安装该工具的版本后,使用命令行将文件和文件夹上传到存储桶。

    Using the console
    • 通过 https://s3.console.aws.amazon.com/s3/ 打开 Amazon S3 控制台。

      (如果你正在使用AWS CloudShell,你应该已经登录到控制台。)

    • 在左侧导航窗格中,选择 B uckets,然后选择要将文件夹或文件上传到的存储桶的名称。您也可以通过选择 Create bucket 来创建您选择的存储桶

    • 要选择要上传的文件和文件夹,选择 Upload(上传)。然后,将您选择的内容和文件夹拖放到列出目标存储桶中对象的控制台窗口,或者选择添加文件添加文件夹

      Upload (上传) 页面上将列出所选文件。

    • 选中复选框以指示要添加的文件。

    • 要将所选文件添加到存储桶,请选择上传

    注意

    有关使用控制台时全方位的配置选项,请参阅如何将文件和文件夹上传到 S3 存储桶?亚马逊Simple Storage Service 用户指南

    Using AWS CLI
    注意

    要使用此选项,您需要在本地计算机上安装该AWS CLI工具,并配置用于调用AWS服务的证书。有关更多信息,请参阅 AWS Command Line Interface 用户指南

    • 启动该AWS CLI工具并运行以下aws s3命令,将指定的存储段与本地计算机上当前目录的内容同步:

      aws s3 sync folder-path s3://your-bucket-name

    如果同步成功,则会显示添加到存储桶的每个对象的上传消息。

  3. 返回 CloudShell 命令行并输入以下命令,将 shell 环境中的目录与 S3 存储桶的内容同步:

    aws s3 sync s3://your-bucket-name folder-path
    注意

    您还可以在sync命令中添加--exclude "<value>"--include "<value>"参数以执行模式匹配,以排除或包含特定的文件或对象。

    有关更多信息,请参阅《AWS CLI命令参考》中的 “排除” 和 “包含筛选器” 的使用

    如果同步成功,则会显示从存储桶下载到该目录的每个文件的下载消息。

    注意

    使用 sync 命令,只有新的和更新的文件才会从源目录递归复制到目标。

AWS CloudShell使用 Amazon S3 下载多个文件

  1. 使用AWS CloudShell命令行输入以下aws s3命令将 S3 存储桶与 shell 环境中当前目录的内容同步:

    aws s3 sync folder-path s3://your-bucket-name
    注意

    您还可以在sync命令中添加--exclude "<value>"--include "<value>"参数以执行模式匹配,以排除或包含特定的文件或对象。

    有关更多信息,请参阅《AWS CLI命令参考》中的 “排除” 和 “包含筛选器” 的使用

    如果同步成功,则会显示添加到存储桶的每个对象的上传消息。

  2. 将存储桶的内容下载到本地机器中。由于 Amazon S3 控制台不支持下载多个对象,因此您需要使用安装在本地计算机上的AWS CLI工具。

    在AWS CLI工具的命令行中,运行以下任一:

    aws s3 sync s3://your-bucket-name folder-path

    如果同步成功,命令行会显示目标目录中更新或添加的每个文件的下载消息。

    注意

    要使用此选项,您需要在本地计算机上安装该AWS CLI工具,并配置用于调用AWS服务的证书。有关更多信息,请参阅 AWS Command Line Interface 用户指南

使用压缩文件夹上传和下载多个文件

使用 zip/unzip 实用程序,您可以压缩存档中的多个文件,这些文件可以视为单个文件。这些实用程序已预先安装在 CloudShell 计算环境中。

有关预安装工具的更多信息,请参阅开发工具和 Shell 实用程序

AWS CloudShell使用压缩文件夹将多个文件上传到

  1. 在本地计算机上,将要上传的文件添加到压缩文件夹。

  2. 启动 CloudShell,然后选择操作上传文件

  3. 在 “上传文件” 对话框中,选择 “选择文件”,然后选择刚才创建的压缩文件夹。

  4. 在 “上传文件” 对话框中,选择 “载” 将所选文件添加到 shell 环境中。

  5. 在 CloudShell 命令行中,运行以下命令将 zip 存档的内容解压缩到指定目录:

    unzip zipped-files.zip -d my-unzipped-folder

AWS CloudShell使用压缩文件夹下载多个文件

  1. 在 CloudShell 命令行中,运行以下命令将当前目录中的所有文件添加到压缩文件夹:

    zip -r zipped-archive.zip *
  2. 选择操作下载文件

  3. 在 “下载文件” 对话框中,输入压缩文件夹的路径(/home/cloudshell-user/zip-folder/zipped-archive.zip例如),然后选择 “下载”。

    如果路径正确,则浏览器对话框提供打开压缩文件夹或将其保存到本地计算机的选项。

  4. 在本地计算机上,您现在可以解压缩下载的压缩文件夹的内容。