
Boto3 是亚马逊 Web 服务(AWS)为 Python 提供的官方软件开发工具包。它让 Python 开发者能够通过代码操作 AWS 的各种服务,从对象存储 S3 到弹性计算 EC2,覆盖了 AWS 绝大部分产品线。
项目由亚马逊 Web 服务团队维护和发布,在 GitHub 上获得了超过 9800 颗星,是 Python 生态中连接 AWS 基础设施的标准选择。对于需要自动化管理云资源的团队来说,Boto3 几乎是必不可少的一环。
从一条河流说起
Boto(读作 boh-toh)这个名字来源于亚马逊河流域的一种淡水海豚。最初版本的 Boto 库作者 Mitch Garnaat 选择了这个名字,以此向这条河流致敬。这个命名传统延续到了今天的 Boto3。
两种编程模型
Boto3 提供了两套 API:客户端(Client)和资源(Resource)。客户端对应底层 AWS 服务 API,每个操作都与 HTTP 请求一一映射。资源则是更高层的抽象,提供了面向对象的使用方式。
以 S3 为例,使用客户端创建存储桶:
ini
import boto3
s3_client = boto3.client('s3')
s3_client.create_bucket(Bucket='my-bucket')
使用资源接口则更直观:
ini
s3_resource = boto3.resource('s3')
bucket = s3_resource.create_bucket(Bucket='my-bucket')
资源接口的优势在于,返回的是 Python 对象,可以直接调用方法和访问属性,代码更简洁。客户端接口则胜在功能完整,AWS 新服务和新功能通常先在客户端接口中支持。
快速上手
安装 Boto3 通过 pip 即可完成:
ruby
$ python -m pip install boto3
使用前需要配置 AWS 凭证。在 ~/.aws/credentials 文件中设置访问密钥:
ini
[default]
aws_access_key_id = YOUR_KEY
aws_secret_access_key = YOUR_SECRET
同时在 ~/.aws/config 中配置默认区域:
ini
[default]
region = us-east-1
完成配置后,在 Python 中导入并使用:
python
>>> import boto3
>>> s3 = boto3.resource('s3')
>>> for bucket in s3.buckets.all():
print(bucket.name)
这段代码会列出当前账号下所有 S3 存储桶的名称,是大多数开发者接触 Boto3 时写的第一段程序。

版本与支持
Boto3 于 2015 年 6 月 22 日正式发布,目前处于完整支持阶段。2026 年 4 月 29 日,Boto3 结束了对于 Python 3.9 的支持,这符合 Python 软件基金会在 2025 年 10 月 31 日终止对该运行时支持的安排。
对于 SDK 主要版本的维护和支持,AWS 提供了详细的版本支持矩阵和生命周期政策。开发者可以在官方文档中查阅具体信息,了解每个版本的支持周期和迁移建议。
开发与测试
Boto3 使用 tox 运行测试,支持所有活跃的 Python 版本:
shell
$ tox
$ tox -- unit/test_session.py
$ pytest tests/unit
项目接受社区贡献,无论是 bug 报告、新功能建议还是文档改进。提交 issue 或 pull request 前,建议先阅读 CONTRIBUTING 文档。
获取帮助
使用过程中遇到问题,可以通过以下渠道寻求帮助:
- 在 Stack Overflow 上提问并添加 boto3 标签
- 通过 AWS Support 提交技术支持工单
- 确认是 bug 的话,在 GitHub 上提交 issue
Boto3 作为 AWS 官方的 Python SDK,覆盖了超过 200 项 AWS 服务,文档完善,社区活跃。如果你需要在 Python 项目中与 AWS 服务交互,Boto3 是目前最成熟的选择。