在 Linux 上安装 Python 3
检查是否已安装 Python:
$ python --version
注意 如果您的 Linux 分发版本附带了 Python,则可能需要安装 Python 开发人员程序包以获取编译扩展和安装 AWS CLI 时需要的标头和库。使用程序包管理器安装开发人员程序包(名称通常为 python-dev 或 python-devel)。 如果尚未安装 Python 2.7 或更高版本,请使用分发版本的程序包管理器来安装 Python 3。命令和程序包名称会有所不同:
在 Debian 衍生物 (如 Ubuntu) 上,请使用 APT:
$ sudo apt-get install python3.4
在 Red Hat 及其衍生物上,请使用 yum:
$ sudo yum install python34
在 SUSE 及其衍生物上,请使用 zypper:
$ sudo zypper install python3-3.4.1
打开命令提示符或 shell,并运行以下命令验证 Python 是否已正确安装:
$ python3 --version
Python 3.4.3
安装 pip,方法是使用 Python 打包权威机构提供的脚本,然后安装 AWS CLI。
安装 pip 和 AWS CLI
从 pypa.io 下载安装脚本:
$ curl -O https://bootstrap.pypa.io/get-pip.py
脚本将会下载,并将安装 pip 的最新版本以及另一个名为 setuptools 的必需程序包。
使用 Python 运行脚本:
$ python3 get-pip.py --user
使用 python3 命令而不是 python 来直接调用 Python 版本 3,这样可确保即使系统上存在 Python 的较旧系统版本,pip 也会安装在正确的位置。
将可执行文件的路径添加到您的 PATH 变量:~/.local/bin
修改您的 PATH 变量 (Linux, macOS, or Unix)
在您的用户文件夹中查找 Shell 的配置文件脚本。如果您不能确定所使用的 Shell,请运行 echo $SHELL
。
$ ls -a ~
. .. .bash_logout .bash_profile .bashrc Desktop Documents Downloads
- Bash – .bash_profile、.profile 或 .bash_login。
- Zsh – .zshrc
- Tcsh – .tcshrc、.cshrc 或 .login。 向配置文件脚本添加导出命令。
export PATH=~/.local/bin:$PATH
在本示例中,此命令将路径 ~/.local/bin 添加到当前 PATH 变量中。
将配置文件加载到当前会话。
$ source ~/.profile
验证 pip 是否已正确安装。
$ pip --version
pip 8.1.2 from ~/.local/lib/python3.4/site-packages (python 3.4)
最后,使用 pip 安装 AWS CLI。
$ pip install awscli --upgrade --user
验证 AWS CLI 是否已正确安装。
$ aws --version
aws-cli/1.11.44 Python/3.4.3 Linux/4.4.0-59-generic botocore/1.5.7
要升级到最新版本,请重新运行安装命令:
$ pip install awscli --upgrade --user
配置AWS CLI
$ aws configure
AWS Access Key ID [None]: AKIAIOSFODNN7EXAMPLE //id
AWS Secret Access Key [None]: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY //秘钥
Default region name [None]: us-west-2 //区域
Default output format [None]: json //格式默认json
测试
具体cli命令,需要查看aws文档
管理存储桶
创建桶;
$ aws s3 mb s3://bucket-name
删除桶:
$ aws s3 rb s3://bucket-name
删除非空桶:
$ aws s3 rb s3://bucket-name --force
列出存储桶
$ aws s3 ls
列出存储桶中所有的对象和文件夹
$ aws s3 ls s3://bucket-name
列出桶中 bucket-name/MyFolder 中的对象
$ aws s3 ls s3://bucket-name/MyFolder
管理对象
命令包括 aws s3 cp、aws s3 ls、aws s3 mv、aws s3 rm 和 sync。cp、ls、mv 和 rm 命令的用法与它们在 Unix 中的对应命令相同。 // 将当前目录里的 MyFile.txt文件拷贝到 s3://my-bucket/MyFolder
$ aws s3 cp MyFile.txt s3://my-bucket/MyFolder/
// 将s3://my-bucket/MyFolder所有 .jpg 的文件移到 ./MyDirectory
$ aws s3 mv s3://my-bucket/MyFolder ./MyDirectory --exclude '*' --include '*.jpg' --recursive
// 列出 my-bucket的所有内容
$ aws s3 ls s3://my-bucket
// 列出my-bucket中MyFolder的所有内容
$ aws s3 ls s3://my-bucket/MyFolder
// 删除 s3://my-bucket/MyFolder/MyFile.txt
$ aws s3 rm s3://my-bucket/MyFolder/MyFile.txt
// 删除 s3://my-bucket/MyFolder 和它的所有内容
$ aws s3 rm s3://my-bucket/MyFolder --recursive
当 –recursive 选项与 cp、mv 或 rm 一起用于目录/文件夹时,命令会遍历目录树,包括所有子目录 sync命令 sync 命令的形式如下。可能的源-目标组合有: 本地文件系统到 Amazon S3 Amazon S3 到本地文件系统 Amazon S3 到 Amazon S3
$ aws s3 sync <source> <target> [--options]
例如:本地文件系统到S3中:
$ aws s3 sync 本地目录/. s3://my-bucket/目录