AWS S3 存储:文件上传与下载的 Python 实现
·
AWS S3 文件上传与下载的 Python 实现
AWS S3(Simple Storage Service)是云存储服务,通过 Python 的 boto3 库可快速实现文件操作。以下分步骤说明核心实现:
1. 环境准备
- 安装必要库:
pip install boto3 - 配置 AWS 凭证(需提前获取):
- 访问密钥 ID(
AWS_ACCESS_KEY_ID) - 秘密访问密钥(
AWS_SECRET_ACCESS_KEY) - 存储区域(如
ap-northeast-1)
- 访问密钥 ID(
2. 文件上传
import boto3
def upload_to_s3(file_path, bucket_name, object_name):
s3 = boto3.client(
's3',
aws_access_key_id='YOUR_ACCESS_KEY',
aws_secret_access_key='YOUR_SECRET_KEY',
region_name='YOUR_REGION'
)
try:
s3.upload_file(file_path, bucket_name, object_name)
print(f"文件 {object_name} 上传至 {bucket_name} 成功")
except Exception as e:
print(f"上传失败: {e}")
# 示例:上传本地文件
upload_to_s3('local_file.txt', 'my-bucket', 'remote_file.txt')
3. 文件下载
def download_from_s3(bucket_name, object_name, local_path):
s3 = boto3.client(
's3',
aws_access_key_id='YOUR_ACCESS_KEY',
aws_secret_access_key='YOUR_SECRET_KEY',
region_name='YOUR_REGION'
)
try:
s3.download_file(bucket_name, object_name, local_path)
print(f"文件 {object_name} 下载到 {local_path} 成功")
except Exception as e:
print(f"下载失败: {e}")
# 示例:下载到本地
download_from_s3('my-bucket', 'remote_file.txt', 'downloaded_file.txt')
4. 关键参数说明
| 参数 | 作用 | 示例值 |
|---|---|---|
file_path | 本地文件路径 | /data/test.pdf |
bucket_name | S3 存储桶名称 | my-documents |
object_name | S3 中的文件标识(含路径) | users/file001.txt |
region_name | AWS 区域代码 | us-west-2 |
5. 安全建议
- 凭证管理:避免硬编码密钥,使用 IAM 角色或环境变量
import os aws_access_key_id = os.environ.get('AWS_ACCESS_KEY_ID') - 权限控制:通过 S3 Bucket Policy 限制访问
- 异常处理:增加具体错误类型捕获(如
ClientError)
注:完整文档参考 boto3 S3 官方指南
更多推荐
所有评论(0)