python - 使用 boto3 和 Python 从 S3 存储桶访问 db3 文件路径
问题描述
我的用例要求我从 S3 存储桶访问 db3 文件并将数据存储到数据库中。我编写了一个函数来提取 db3 文件。为此,我必须传递的参数是 db3 文件路径到我编写的用户定义函数的链接。我如何知道 S3 上文件的路径?或者有没有其他方法可以做到这一点?我已经使用 boto3 建立了与 S3 的连接,并且能够查看所有文件名。
我的自定义功能是读取ros bag文件
def read_bag_file(path_to_db3file):
Code to extract and store information to the database
S3 连接
s3 = boto3.resource(
service_name='s3',
region_name='us-west-2',
aws_access_key_id='access ID',
aws_secret_access_key='Key'
)
for obj in s3.Bucket('test-bagfiles').objects.all():
print(obj.key)
当我打印 obj.key 时,我得到了文件路径。其中一条路径是
bagfiles/bag_9998_central_2021_08_1218_33_49_d58fec5/bag_9998_central_2021_8_12-18_33_49_d58fec5_0.db3
我现在想将此 db3 文件路径传递给 read_bag_file 代码以提取信息并将其存储在数据库中。如何将此包文件位置传递给 read_bag_file 函数?
解决方案
您应该能够连接存储桶和密钥
bucket = 'test-bagfiles'
for obj in s3.Bucket(bucket).objects.all():
read_bag_file(bucket + '/' + obj.key)
推荐阅读
- sql - 无法显示错误子报告
- python - 如何在火花中读取固定字符长度的格式文件
- javascript - --skip-js-errors 特定测试用例
- java - Spring Boot SpEL 和配置属性绑定到常量表达式
- android - Firestore 复合索引排序不修改顺序
- node.js - 使用 Meteor 从 Mongo 同步读取数据
- c++ - 在继承的模板类中使用下标 [] 运算符
- vba - VBA用换行符替换str
- terraform-template-file - Terraform Template_File 渲染不工作
- reactjs - React:哪个是推荐的箭头或正常功能?