9个使用示例的AWS S3命令,用于管理存储桶和数据
数据的控制和管理可能是一项艰巨的任务。这些AWS S3命令将帮助您快速高效地管理您的AWS S3存储桶和数据。
AWS S3是AWS提供的object storage服务。它是AWS最广泛使用的存储服务,可以几乎容纳无限量的数据。它具有高度可用性、耐久性,并且易于与其他多个AWS服务集成。
AWS S3可以满足任何人的需求,如移动/Web应用程序存储、大数据存储、机器学习数据存储、hosting static websites等等。
如果您在项目中使用S3,您会知道鉴于大量的存储容量,在这些存储桶中管理数百个存储桶和数千兆字节的数据可能是一项艰巨的工作。我们有一份带有示例的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存储桶之间复制。您可以为命令提供许多其他参数。
例如,-dryrun参数测试命令,-storage-class参数指定S3中数据的存储类别,其他参数设置加密等等。该cp command使您完全控制如何配置您的data security in S3。
用法
aws s3 cp [--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 [--options]
示例
列出帐户中的所有存储桶
aws s3 ls 输出: 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 输出: 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 输出: 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 command简单地创建新的S3存储桶。这是一个相当简单的命令,但是要创建新的存储桶,新存储桶的名称在所有S3存储桶中都必须是唯一的。
用法
aws s3 mb
示例
在特定区域中创建一个新的存储桶
aws s3 mb myUniqueBucketName --region eu-west-1
mv
mv command简单地将数据移动到S3存储桶和从S3存储桶中移动数据。与cp命令一样,mv命令用于将数据从本地移动到S3、从S3移动到本地或在两个S3存储桶之间移动。
mv命令与cp命令之间唯一的区别在于使用mv命令时,文件会从源位置删除。AWS将此文件“移动”到目标位置。您可以使用该命令指定许多选项。
用法
aws s3 mv [--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
presign命令为S3存储桶中的密钥生成预签名URL。您可以使用此命令生成URL,供其他人使用以访问指定S3存储桶密钥中的文件。
用法
aws s3 presign
示例
为存储桶中的对象生成有效期为1小时的预签名URL。
aws s3 presign s3://bucket_name/samplePrefix/file_name.png --expires-in 3600 输出: 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
示例
删除一个S3存储桶。
aws s3 mb myBucketName # 如果此存储桶中有任何数据,此命令将失败。
删除S3存储桶以及其中的数据。
aws s3 mb myBucketName --force
rm
rm命令用于删除S3存储桶中的对象。
用法
aws s3 rm
示例
从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
同步
同步命令(sync)像cp命令一样从源到目标复制和更新文件。了解cp命令和sync命令之间的区别很重要。当使用cp命令时,即使目标中已经存在数据,它也会将数据从源复制到目标。
如果从源中删除文件,它也不会从目标中删除文件。然而,sync在复制数据之前查看目标,并且只复制新的和更新的文件。此操作类似于在git中提交和推送更改到远程分支。sync命令提供了很多选项来自定义命令。
用法
aws s3 sync [--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存储桶来托管静态网站。网站命令用于为您的存储桶配置S3静态网站托管。
您可以指定索引和错误文件,S3会给您一个URL,您可以在其中查看文件。
用法
aws s3 website [--options]
示例:
为S3存储桶配置静态托管,并指定索引和错误文件
aws s3 website s3://bucket_name --index-document index.html --error-document error.html
结论
希望以上内容让您了解一些常用的AWS S3命令来管理存储桶。如果您想了解更多信息,可以访问AWS certification details。