如何在使用smart open通过URL读取S3压缩文件时传入boto3 Session?
使用smart open通过S3 URL + Session读取压缩文件
完全可以实现无需手动创建boto3客户端、无需直接操作存储桶和密钥,仅通过S3 URL和Session完成读取操作。
正确代码示例
import boto3 from smart_open import open # 初始化boto3 Session session = boto3.Session(aws_access_key_id="你的访问ID", aws_secret_access_key="你的密钥") # 直接通过S3 URL读取压缩文件,传入Session参数 with open("s3://bucket/file.txt.gz", "r", encoding="utf-8", transport_params={"session": session}) as f: # 逐行读取文件内容 for line in f: print(line.strip())
关键说明
- 必须导入
smart_open.open,而非Python内置的open函数,这是实现S3 URL直接读写的核心 transport_params参数支持传入boto3 Session,读取和写入操作都适用,smart_open会自动基于该Session创建对应的客户端处理请求- 对于
.gz这类压缩文件,smart_open会自动识别并完成解压,无需额外编写解压逻辑
内容的提问来源于stack exchange,提问作者A Simple Programmer
相关产品推荐
相关产品推荐

