9 个 AWS S3 命令以及管理存储桶和数据的示例

数据的控制和管理可能是一项艰巨的任务。 这些 AWS S3 命令将帮助您快速有效地管理您的 AWS S3 存储桶和数据。

AWS S3 是 AWS 提供的对象存储服务。 它是 AWS 使用最广泛的存储服务,几乎可以保存无限量的数据。 它具有高可用性、持久性并且易于与其他几个 AWS 服务集成。

AWS S3 可供有任何需求的人使用,例如移动/Web 应用程序存储、大数据存储、机器学习数据存储、托管静态网站等等。

如果您一直在项目中使用 S3,您就会知道,鉴于存储容量巨大,管理 100 多个存储桶和这些存储桶中的 TB 数据可能是一项艰巨的工作。 我们有一个 AWS S3 命令列表和示例,您可以使用这些命令来有效地管理您的 AWS S3 存储桶和数据。

AWS CLI 设置

成功下载并安装 AWS CLI 后,您需要配置 AWS 凭证才能访问您的 AWS 账户和服务。 让我们快速了解如何配置 AWS CLI。

第一步是创建一个对 AWS 账户具有编程访问权限的用户。 请记住在为 AWS CLI 创建用户时选中此框。

  你应该买哪一个?

授予权限并创建用户。 在您成功创建此用户后的最后一个屏幕上,复制此用户的访问密钥 ID 和秘密访问密钥。 我们将使用这些凭证通过 AWS CLI 登录。

现在转到您选择的终端并运行以下命令。

aws configure 

出现提示时输入访问密钥 ID 和秘密访问密钥。 选择您选择的任何 AWS 区域和命令输出格式。 我个人更喜欢使用 JSON 格式。 这没什么大不了的,您以后可以随时更改这些值。

您现在可以在控制台中运行任何 AWS CLI 命令。 现在让我们看看 AWS S3 命令。

cp

cp 命令只是将数据复制到 S3 存储桶或从 S3 存储桶复制数据。 它可用于将文件从本地复制到 S3、从 S3 复制到本地以及两个 S3 存储桶之间。 您可以使用命令提供许多其他参数。

例如,-dryrun 参数用于测试命令,-storage-class 参数用于指定数据在 S3 中的存储类别,其他参数用于设置加密等等。 这 cp 命令 让您完全控制如何在 S3 中配置数据安全性。

用法

aws s3 cp <SOURCE> <DESTINATION> [--options]

例子

将数据从本地复制到 S3

aws s3 cp file_name.txt s3://bucket_name/file_name_2.txt

将数据从 S3 复制到本地

aws s3 cp s3://bucket_name/file_name_2.txt file_name.txt

在 S3 存储桶之间复制数据

aws s3 cp s3://bucket_name/file_name.txt s3://bucket_name_2/file_name_2.txt

将数据从本地复制到 S3 – IA

aws s3 cp file_name.txt s3://bucket_name/file_name_2.txt --storage-class STANDARD_IA 

将本地文件夹中的所有数据复制到 S3

aws s3 cp ./local_folder s3://bucket_name --recursive

ls

ls 命令 用于列出桶或桶的内容。 因此,如果您只是想查看有关您的存储桶的信息或这些存储桶中的数据,您可以使用 ls 命令。

用法:

aws s3 ls NONE or <BUCKET_NAME> [--options]

例子

列出账户中的所有存储桶

aws s3 ls

Output:
2022-02-02 18:20:14 BUCKET_NAME_1
2022-03-20 13:12:43 BUCKET_NAME_2
2022-03-29 10:52:33 BUCKET_NAME_3

此命令列出您账户中的所有存储桶以及存储桶创建日期。

列出存储桶中的所有顶级对象

aws s3 ls BUCKET_NAME_1 or s3://BUCKET_NAME_1 

Output:
                           PRE samplePrefix/
2021-12-09 12:23:20       8754 file_1.png
2021-12-09 12:23:21       1290 file_2.json
2021-12-09 12:23:21       3088 file_3.html

此命令列出 S3 存储桶中的所有顶级对象。 请注意,带有前缀 samplePrefix/ 的对象在此处仅显示顶级对象。

列出存储桶中的所有对象

aws s3 ls BUCKET_NAME_1 or s3://BUCKET_NAME_1 --recursive

Output:
2021-12-09 12:23:20       8754 file_1.png
2021-12-09 12:23:21       1290 file_2.json
2021-12-09 12:23:21       3088 file_3.html
2021-12-09 12:23:20      16328 samplePrefix/file_1.txt
2021-12-09 12:23:20      29325 samplePrefix/sampleSubPrefix/file_1.css

此命令列出 S3 存储桶中的所有对象。 注意这里还会显示带有前缀 samplePrefix/ 的对象和所有子前缀。

  产品经理与项目经理:选择哪一个?

mb

mb 命令 仅用于创建新的 S3 存储桶。 这是一个相当简单的命令,但要创建新存储桶,新存储桶的名称在所有 S3 存储桶中应该是唯一的。

用法

aws s3 mb <BUCKET_NAME>

例子

在特定区域创建新存储桶

aws s3 mb myUniqueBucketName --region eu-west-1

MV

mv 命令 只需将数据移入和移出 S3 存储桶。 就像 cp 命令一样,mv 命令用于将数据从本地移动到 S3、S3 到本地,或者在两个 S3 存储桶之间移动。

mv 和 cp 命令之间的唯一区别是,当使用 mv 命令时,文件会从源中删除。 AWS 将此文件移动到目标。 您可以使用命令指定很多选项。

用法

aws s3 mv <SOURCE> <DESTINATION> [--options]

例子

将数据从本地移动到 S3

aws s3 mv file_name.txt s3://bucket_name/file_name_2.txt

将数据从 S3 移动到本地

aws s3 mv s3://bucket_name/file_name_2.txt file_name.txt

在 S3 存储桶之间移动数据

aws s3 mv s3://bucket_name/file_name.txt s3://bucket_name_2/file_name_2.txt

将数据从本地移动到 S3 – IA

aws s3 mv file_name.txt s3://bucket_name/file_name_2.txt --storage-class STANDARD_IA 

将所有数据从 S3 中的前缀移动到本地文件夹。

aws s3 mv s3://bucket_name/somePrefix ./localFolder --recursive

预兆

presign 命令为 S3 存储桶中的密钥生成预签名 URL。 您可以使用此命令生成可供其他人用来访问指定 S3 存储桶密钥中的文件的 URL。

用法

aws s3 presign –expires-in

例子

为存储桶中的对象生成有效期为 1 小时的预签名 URL。

aws s3 presign s3://bucket_name/samplePrefix/file_name.png --expires-in 3600

Output:
https://s3.ap-south-1.amazonaws.com/bucket_name/samplePrefix/file_name.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIA4MCZT73PAX7ZMVFW%2F20220314%2Fap-south-1%2Fs3%2Faws4_request&X-Amz-Date=20220314T054113Z&X-Amz-Expires=3600&X-Amz-SignedHeaders=host&X-Amz-Signature=f14608bbf3e1f9f8d215eb5b439b87e167b1055bcd7a45c13a33debd3db1be96

rb

rb 命令仅用于删除 S3 存储桶。

用法

aws rb <BUCKET_NAME>

例子

删除 S3 存储桶。

aws s3 mb myBucketName
# This command fails if there is any data in this bucket.

删除 S3 存储桶以及 S3 存储桶中的数据。

aws s3 mb myBucketName --force

R M

rm 命令仅用于删除 S3 存储桶中的对象。

  备份 Mac 的最佳方法

用法

aws s3 rm <S3Uri_To_The_File>

例子

从 S3 存储桶中删除一个文件。

aws s3 rm s3://bucket_name/sample_prefix/file_name_2.txt

删除 S3 存储桶中具有特定前缀的所有文件。

aws s3 rm s3://bucket_name/sample_prefix --recursive

删除 S3 存储桶中的所有文件。

aws s3 rm s3://bucket_name --recursive

同步

与 cp 命令一样,sync 命令将文件从源复制并更新到目标。 了解 cp 和 sync 命令之间的区别很重要。 当您使用 cp 时,即使数据已经存在于目标中,它也会将数据从源复制到目标。

如果从源中删除文件,它也不会从目标中删除文件。 但是,同步会在复制数据之前查看目标,并且只复制新的和更新的文件。 这 同步命令 类似于在 git 中提交和推送更改到远程分支。 sync 命令提供了很多选项来自定义命令。

用法

aws s3 sync <SOURCE> <DESTINATION> [--options]

例子

将本地文件夹同步到 S3

aws s3 sync ./local_folder s3://bucket_name

将 S3 数据同步到本地文件夹

aws s3 sync s3://bucket_name ./local_folder

在两个 S3 存储桶之间同步数据

aws s3 sync s3://bucket_name s3://bucket_name_2

在两个 S3 存储桶之间移动数据,不包括所有 .txt 文件

aws s3 sync s3://bucket_name s3://bucket_name_2 --exclude "*.txt

网站

您可以使用 S3 存储桶来托管静态网站。 website 命令用于为您的存储桶配置 S3 静态网站托管。

您指定索引和错误文件,S3 会为您提供一个 URL,您可以在其中查看文件。

用法

aws s3 website <S3_URI> [--options]

例子:

为 S3 存储桶配置静态托管并指定索引和错误文件

aws s3 website s3://bucket_name --index-document index.html --error-document error.html

结论

我希望以上内容能让您了解一些常用的 AWS S3 命令来管理存储桶。 如果您有兴趣了解更多信息,可以查看 AWS 认证详细信息。