在 Linux 中使用 AWS S3 CLI


简介

AWS S3(简单存储服务)是一种可靠且可扩展的对象存储服务,通常用于跨各个行业存储和检索数据。AWS S3 CLI(命令行界面)是一个强大的工具,它为开发人员和系统管理员提供了一个命令行界面来与 S3 交互。在本文中,我们将探讨可用于执行各种操作的各种 AWS S3 CLI 命令,例如创建和删除 S3 存储桶、下载文件以及从 S3 存储桶复制文件。通过利用这些命令,用户可以简化工作流程并更有效地管理其 S3 资源。使用 AWS S3 CLI,用户还可以自动化重复性任务并轻松地将 S3 存储与其他应用程序集成,从而提供更无缝和集成的体验。

设置 AWS CLI

在开始使用 AWS S3 CLI 之前,我们需要先安装 AWS CLI。AWS CLI 可以使用以下命令在 Linux 上安装:

$ sudo apt-get install awscli

安装完成后,我们需要通过运行以下命令并按照提示进行操作来配置 AWS CLI:

$ aws configure

这将提示您输入您的 AWS 访问密钥 ID、秘密访问密钥、默认区域名称和默认输出格式。您可以从 AWS 管理控制台获取访问密钥 ID 和秘密访问密钥。

配置 AWS CLI 后,我们就可以开始使用 AWS S3 CLI 与 S3 交互了。以下是一些最常用的 AWS S3 CLI 命令:

创建 S3 存储桶

我们可以使用以下命令创建 S3 存储桶:

$ aws s3 mb s3://bucket-name

将“bucket-name”替换为您所需的存储桶名称。

列出所有可用的 S3 存储桶

要列出 AWS 账户中所有可用的 S3 存储桶,请使用以下命令:

$ aws s3 ls

此命令将显示 AWS 账户中所有可用 S3 存储桶的名称。

列出特定 S3 存储桶的内容

我们可以使用以下命令列出 S3 存储桶的内容:

$ aws s3 ls s3://bucket-name

将“bucket-name”替换为要列出的存储桶的名称。

列出特定存储桶中的所有项目

如果要显示有关存储桶中对象的更多信息,可以使用以下命令:

$ aws s3 ls s3://<bucket-name> --recursive --human-readable 

--recursive 选项用于递归列出存储桶中的所有对象,包括子目录中的对象。

--human-readable 选项用于以人类可读的格式(例如 KB、MB、GB)显示对象大小,而不是以字节为单位。

$ aws s3 ls s3://<bucket-name> --recursive --human-readable --summarize

此命令将显示存储桶中对象总数和总大小的摘要。

删除 S3 存储桶

我们可以使用以下命令删除 S3 存储桶:

$ aws s3 rb s3://bucket-name

将占位符“bucket-name”替换为您要删除的存储桶的实际名称。

--force 标志确保存储桶及其所有对象都被删除。

$ aws s3 rb s3://bucket-name --force

将文件复制到 S3 存储桶

设置好先决条件后,我们可以继续使用 AWS S3 CLI 将文件复制到 S3 存储桶。将文件复制到 S3 存储桶的命令如下:

$ aws s3 cp /path/to/local/file s3://bucket-name/path/to/s3/object

将“/path/to/local/file”替换为本地计算机上文件的路径,“bucket-name/path/to/s3/object”替换为 S3 存储桶中对象的所需路径。

例如,如果我们有一个名为“example.txt”的文件位于“/home/user”目录中,并且我们想将其复制到名为“my-bucket”的存储桶中,路径为“my-folder/example.txt”,我们可以使用以下命令:

$ aws s3 cp /home/user/example.txt s3://my-bucket/my-folder/example.txt

这会将文件“example.txt”上传到“my-bucket”存储桶,路径为“my-folder/example.txt”。如果指定的存储桶或文件夹不存在,则会创建它。

如果要将目录中的所有文件复制到 S3 存储桶,可以在命令中使用递归标志“-r”。如果要将“/home/user/my-folder”目录中的所有文件复制到“my-bucket”存储桶,并保持相同的目录结构,可以使用以下命令:

$ aws s3 cp /home/user/my-folder s3://my-bucket/my-folder –recursive

这会将“/home/user/my-folder”目录中的所有文件上传到“my-bucket”存储桶,并保持相同的目录结构。

从 S3 存储桶下载文件

要使用 AWS S3 CLI 从 S3 存储桶下载文件,我们需要使用 aws s3 cp 命令,该命令将文件或对象从源复制到目标。在这种情况下,我们将从 S3 存储桶复制文件到本地系统。

$ aws s3 cp s3://bucket-name/file-path local-file-path

其中 bucket-name 是 S3 存储桶的名称,file-path 是存储桶中文件的路径,local-file-path 是我们要在本地计算机上下载文件的路径。

例如,要从名为 my-bucket 的 S3 存储桶下载名为 example.txt 的文件,我们将使用以下命令:

$ aws s3 cp s3://my-bucket/example.txt /path/to/local/folder/

从 S3 存储桶删除文件

我们可以使用以下命令从 S3 存储桶删除文件:

$ aws s3 rm s3://bucket-name/path/to/s3/object

将“bucket-name/path/to/s3/object”替换为要删除的对象的路径。

结论

对于喜欢基于终端的界面的开发人员和系统管理员来说,AWS S3 CLI 可以是一个有用的工具。本文介绍了如何安装和配置 AWS CLI,以及如何使用 AWS S3 CLI 创建和管理存储桶、下载文件、删除文件和列出存储桶内容。AWS S3 CLI 可以简化在 Linux 中使用 S3 的操作。

更新于:2023-03-29

885 次浏览

开启你的 职业生涯

通过完成课程获得认证

开始学习
广告