AWS CLI 操作指南
世间本来就存在许多乐境,只是现代人为世间所累而未能予以关注,也就失去了许多体验乐境的机会。比如,忙里偷闲看云,以悠闲的心看悠闲的云,便是一种极妙的乐境。
本文将介绍如何配置 AWS CLI,并逐步展示如何执行常见的 AWS S3 操作,包括配置 AWS、安装 AWS CLI、上传文件、删除文件等。
1. 安装 AWS CLI
首先,确保你已经在系统中安装了 AWS CLI 工具。下面是在常见的操作系统上安装 AWS CLI 的方法:
1.1 在 Linux 系统上安装
你可以通过 pip
(Python 包管理工具)来安装 AWS CLI。打开终端,运行以下命令:
sudo pip install awscli
或者,如果你的系统使用 apt
(Debian 系列),可以运行:
sudo apt-get install awscli
1.2 在 Windows 系统上安装
Windows 用户可以直接下载 AWS CLI 安装包,访问 AWS CLI 下载页面进行下载安装。
安装完成后,打开命令提示符,输入以下命令以验证安装:
aws --version
1.3 配置 AWS CLI
安装完成后,你需要配置 AWS CLI。配置时,系统会要求输入 AWS Access Key ID、AWS Secret Access Key 和 Region 等信息。
运行以下命令启动配置过程:
aws configure
系统会提示你输入:
- AWS Access Key ID:从 AWS IAM 控制台获取。
- AWS Secret Access Key:从 AWS IAM 控制台获取。
- Default region name:选择你常用的 AWS 区域,例如
us-west-2
。 - Default output format:选择输出格式,通常选择
json
。
2. 常见 AWS S3 操作
2.1 查看 S3 存储桶
你可以使用 aws s3 ls
命令列出你账户下的所有 S3 存储桶:
aws s3 ls
这个命令将列出所有 S3 存储桶的名称和相关信息。
2.2 列出存储桶中的文件
要查看某个存储桶中的文件,可以使用以下命令:
aws s3 ls s3://your-bucket-name/
这个命令会列出存储桶 your-bucket-name
中的所有文件和目录。
2.3 上传文件到 S3
使用 aws s3 cp
命令将本地文件上传到 S3 存储桶。例如,将本地的 file.txt
上传到 my-bucket
存储桶中:
aws s3 cp ./file.txt s3://my-bucket/
你还可以上传整个文件夹,使用 --recursive
参数:
aws s3 cp ./local-folder/ s3://my-bucket/ --recursive
2.4 同步本地文件夹到 S3 存储桶
如果你希望将本地的文件夹同步到 S3 存储桶,可以使用 aws s3 sync
命令。以下命令会将本地 /home/
目录下的所有文件同步到 S3 存储桶 ceshi
下的路径 ecs-backup/10-50-158-73/$(date +%Y-%m-%d)/
中:
aws s3 sync /home/ s3://ceshi/ecs-backup/10-50-158-73/$(date +%Y-%m-%d)/ --delete
说明:
--delete
参数会删除目标 S3 存储桶中不再本地存在的文件。请谨慎使用。
2.5 查看存储桶中的文件夹内容
如果你想查看 S3 存储桶中某个“文件夹”的内容,使用类似以下命令:
aws s3 ls s3://my-bucket/folder1/subfolder/
这个命令会列出 folder1/subfolder/
下的所有文件。需要注意的是,S3 并没有真正的文件夹,路径结构仅是通过对象的前缀来模拟的。
2.6 删除文件或文件夹
要删除 S3 存储桶中的文件,可以使用 aws s3 rm
命令。例如,删除 my-bucket
存储桶中的 file.txt
文件:
aws s3 rm s3://my-bucket/file.txt
如果你想删除整个目录下的所有文件,可以使用 --recursive
参数:
aws s3 rm s3://my-bucket/folder-name/ --recursive
2.7 删除存储桶
如果你想删除一个空的 S3 存储桶,可以使用以下命令:
aws s3 rb s3://my-bucket/
2.8 删除版本化对象
如果存储桶启用了版本控制并且你需要删除版本化对象,可以使用 --version-id
参数:
aws s3 rm s3://my-bucket/file.txt --version-id <version-id>
如果要删除所有版本的文件,可以使用 --versions
参数:
aws s3 rm s3://my-bucket/ --recursive --versions
3. 常见问题解答
3.1 如果目标文件夹不存在,aws s3 sync
会失败吗?
如果目标文件夹(前缀)不存在,aws s3 sync
命令并不会失败。AWS S3 会自动创建缺失的路径,命令会正常执行。你可以直接使用 aws s3 sync
同步文件夹,而不需要担心文件夹是否存在。
3.2 如何进入 S3 中的“文件夹”?
在 AWS S3 中,文件夹实际上是通过文件路径的前缀来模拟的。你不能像在传统文件系统中那样“进入”文件夹。要查看某个“文件夹”中的内容,你可以使用 aws s3 ls
命令指定该文件夹的路径。例如:
aws s3 ls s3://my-bucket/folder1/subfolder/
4. 总结
本指南涵盖了从安装 AWS CLI 到常见的 AWS S3 操作的内容,包括上传、删除、同步文件以及查看存储桶内容。通过掌握这些基本操作,你可以高效地管理 AWS 上的 S3 存储。