在 Linux 中使用 AWS S3 CLI
介绍
AWS S3(简单存储服务)是一种可靠且可扩展的对象存储服务,通常用于存储和检索各行业的数据。 AWS S3 CLI(命令行界面)是一个功能强大的工具,为开发人员和系统管理员提供与 S3 交互的命令行界面。在本文中,我们将探讨可用于执行创建和删除 S3 存储桶、下载文件以及从 S3 存储桶复制文件等操作的各种 AWS S3 CLI 命令。通过利用这些命令,用户可以简化其工作流程并更有效地管理其 S3 资源。借助 AWS S3 CLI,用户还可以自动执行重复性任务,并轻松将 S3 存储与其他应用程序集成,从而提供更加无缝和集成的体验。
设置 AWS CLI
在开始使用 AWS S3 CLI 之前,我们需要先安装 AWS CLI。可以使用以下命令在 Linux 上安装 AWS CLI -
$ 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 选项用于递归列出存储桶中的所有对象,包括子目录中的对象。
--人类可读选项用于以人类可读的格式(例如,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 存储桶中对象的所需路径。
例如,如果我们在“/home/user”目录中有一个名为“example.txt”的文件,并且希望将其复制到名为“my-bucket”且路径为“my-folder/example.txt”的存储桶中”,我们可以使用以下命令 -
$ aws s3 cp /home/user/example.txt s3://my-bucket/my-folder/example.txt
这会将文件“example.txt”上传到路径为“my-folder/example.txt”的“my-bucket”存储桶。如果指定的存储桶或文件夹不存在,则会创建它。
如果我们想将目录中的所有文件复制到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 的使用。